Python запись в файл: Python, запись целого числа в файл ‘.txt’

Содержание

Python запись вывода функции в файл



У меня есть функция, которая имитирует что-то и записывает полученный массив в текстовый файл.

Например,

def SimulationFunction(args):
    #some simulation which results simOUT
    f = open('results.txt','w')
    f.write(str(simOUT) + '\n')
    f.close()

Я хотел бы запустить функцию на различных входных Аргументах и сохранить выходные данные в новых строках того же файла results.txt.

Например,

for i in inputArgs:
    SimulationFunction(i)

Однако, когда я пытаюсь запустить это, результирующий текстовый файл содержит только результаты последнего запуска моделирования.

Что я здесь упускаю? Любые предложения будут очень признательны!

python
Поделиться Источник user32147     06 февраля 2015 в 00:32

3 ответа


  • запись вывода os.system в файл

    в принципе, я хочу вывести результаты os.system в файл на основе входных данных sys.argv. Код приведен ниже. Он выдает мне ошибку: SyntaxError: недопустимый синтаксис. Я предполагаю, что оператор вывода > не принимает переменные? #!/usr/bin/python import os import sys nfile = sys.argv[1]…

  • python импорт вывода std в новый файл

    У меня есть набор print stmts, который печатается при запуске в python shell, но я хотел сохранить их в файле, не меняя порядок вывода, Как это было в shell output. У меня есть часть файла, имеющая печать stmts,я должен сохранить их в новый файл: with open(‘myfile’) as f: print best1 print best2…



6

Вы должны добавить к файлу, а не перезаписывать его.

Согласно Python Pocket Reference (Марк Лутц, О’Риэлли):

Режим

-это необязательная строка, указывающая режим, в котором открывается файл. По умолчанию он имеет значение 'r' , что означает «открыт для чтения в текстовом режиме». Другие общие значения- 'w' для записи (усечение файла, если он уже существует) и 'a' для добавления.

Вот режимы для open(): (в соответствии с пунктом учебников )

r — Открывает файл только для чтения. Указатель на файл помещается в начало файла. Это режим по умолчанию.

rb — Открывает файл только для чтения в двоичном формате. Указатель на файл помещается в начало файла. Это режим по умолчанию.

r+ — Открывает файл как для чтения, так и для записи. Указатель на файл будет находиться в начале файла.

rb+ — Открывает файл для чтения и записи в двоичном формате. Указатель на файл будет находиться в начале файла.

w — Открывает файл только для записи. Перезаписывает файл, если он существует. Если файл не существует, создайте новый файл для записи.

wb — Открывает файл для записи только в двоичном формате. Перезаписывает файл, если он существует. Если файл не существует, создайте новый файл для записи.

w+ — Открывает файл как для записи, так и для чтения. Перезаписывает существующий файл, если он существует. Если файл не существует, создайте новый файл для чтения и записи.

wb+ — Открывает файл как для записи, так и для чтения в двоичном формате. Перезаписывает существующий файл, если он существует. Если файл не существует, создайте новый файл для чтения и записи.

a — Открывает файл для добавления. Указатель на файл находится в конце файла, если файл существует. То есть файл находится в режиме добавления. Если файл не существует, он создает новый файл для записи.

ab — Открывает файл для добавления в двоичном формате. Указатель на файл находится в конце файла, если файл существует. То есть файл находится в режиме добавления. Если файл не существует, он создает новый файл для записи.

a+ — Открывает файл как для добавления, так и для чтения. Указатель на файл находится в конце файла, если файл существует. Файл открывается в режиме добавления. Если файл не существует, он создает новый файл для чтения и записи.

ab+ — Открывает файл как для добавления, так и для чтения в двоичном формате. Указатель на файл находится в конце файла, если файл существует. Файл открывается в режиме добавления. Если файл не существует, он создает новый файл для чтения и записи.

Кроме того, 'w' и 'a' создадут файл, если он не существует, в то время как 'r' вызовет исключение типа IOError .

Поделиться Charles Addis     06 февраля 2015 в 00:41


  • Перенаправление вывода без задержки в файл в Python

    Я ищу способ перенаправить вывод из стандартного вывода в файл без задержки . Запись в файл кажется нормальной с помощью следующего кода : import time import sys,os def test(): j = 1 while j < 10 : time.sleep(1) print(Python is good .Iteration ,j ) j +=1 if __name__ == __main__: myFile= open(…

  • Python запись terminal вывод в файл, а затем чтение файла

    У меня возникли проблемы с записью вывода terminal (все операторы печати) в текстовый файл, а затем чтением этого текстового файла в том же скрипте. Я продолжаю получать ошибку ввода-вывода, если закрываю программу, чтобы закончить запись в файл, а затем снова открываю файл, чтобы прочитать его,…



4

Использование режима "a" (добавление) при вызове open() , как предполагают другие, решит вашу непосредственную проблему, но тогда вам придется беспокоиться о том, как очистить файл для каждого запуска или создать его, если он не существует, и т. Д. Вы можете сделать это, используя режим "w" для первой функции и "a" для последующих, но это приводит к ситуации, когда они должны вызываться в правильном порядке. Который может вернуться, чтобы укусить вас через шесть месяцев, когда вы захотите, чтобы они были в другом порядке, и вам придется искать, почему только некоторые из них отображаются в файле (потому что тот, с «w» в качестве режима, теперь находится посередине).

Лучшее решение-открыть файл вне функции и передать его в качестве аргумента (возможно, используя оператор with вокруг вызовов функции, чтобы он автоматически закрывался после этого). Это не только избавляет от необходимости беспокоиться о режиме в каждой из ваших функций, но и позволяет избежать многократного открытия и закрытия файла, что является неэффективностью (хотя и незначительной в современных системах):

def SimulationFunction1(args, outfile):
    # some simulation, which results in simOUT
    outfile.write(str(simOUT) + '\n')

with open("my_output_file.txt", "w") as out:
    SimulationFunction1(args, outfile=out)
    SimulationFunction2(args, outfile=out)
    SimulationFunction3(args, outfile=out)

Или еще лучше, просто попросите функции вернуть результат и попросите вызывающего абонента разобраться с их написанием:

def SimulationFunction1(args):
    # some simulation, which results in simOUT
    return str(simOUT)

with open("my_output_file.txt", "w") as out:
    out.write(SimulationFunction1(args) + `\n`)
    out.write(SimulationFunction2(args) + `\n`)
    out.write(SimulationFunction3(args) + `\n`)

Этот последний подход иллюстрирует разделение проблем . Каждая часть вашего кода должна быть связана с выполнением одной вещи: вычислением значения, записью в файл или чем-то еще. Выполнение нескольких вещей в одном «chunk» коде (функция, класс, что угодно) затрудняет понимание, обслуживание и повторное использование.

Есть место, где я мог бы (на самом деле, вероятно, должен был) разделить проблемы там, но не сделал этого… ты видишь это? 🙂

Поделиться kindall     06 февраля 2015 в 00:42



2

Вы должны append для файла, а не write для файла.
Вот исправление:

 f = open('results.txt','a')

'w' означает, что вы записываете в файл (перезаписывает)
'a' означает, что вы добавляете в файл

Если вы хотите узнать больше о различных режимах открытия файла, посетите: http://www.tutorialspoint.com/python/python_files_io.htm

Поделиться taesu     06 февраля 2015 в 00:35



Похожие вопросы:


запись вывода Python shell в файл

Очень простой вопрос. Я использую IDLE Python shell для запуска своих скриптов Python. Я использую следующий тип структуры import sys sys.argv = [»,’fileinp’] execfile(‘mypythonscript.py’) Есть ли…


запись в файл после вывода трубопровода из tail-f через grep

Я ищу запись в файл после передачи вывода от tail-f до grep. Скажем, напишите в файл temp для всех строк с Playing: внутри в error_log FreeSwitch.log. tail -f /var/lof/freeswitch/freeswitch.log |…


Запись печатного вывода в файл (python)

У меня есть проблема с записью моей печатной продукции в файл. Мой код: list1 = [2,3] list2 = [4,5] list3 = [6,7] for (a, b, c) in zip(list1, list2, list3): print a,b,c результат, который я получаю,…


запись вывода os.system в файл

в принципе, я хочу вывести результаты os.system в файл на основе входных данных sys.argv. Код приведен ниже. Он выдает мне ошибку: SyntaxError: недопустимый синтаксис. Я предполагаю, что оператор…


python импорт вывода std в новый файл

У меня есть набор print stmts, который печатается при запуске в python shell, но я хотел сохранить их в файле, не меняя порядок вывода, Как это было в shell output. У меня есть часть файла, имеющая…


Перенаправление вывода без задержки в файл в Python

Я ищу способ перенаправить вывод из стандартного вывода в файл без задержки . Запись в файл кажется нормальной с помощью следующего кода : import time import sys,os def test(): j = 1 while j < 10…


Python запись terminal вывод в файл, а затем чтение файла

У меня возникли проблемы с записью вывода terminal (все операторы печати) в текстовый файл, а затем чтением этого текстового файла в том же скрипте. Я продолжаю получать ошибку ввода-вывода, если…


Python, перенаправление вывода функции в файл

Я пытаюсь сохранить вывод функции в файл в Python, то, что я пытаюсь сделать, это что-то вроде этого: def test(): print(This is a Test) file=open(‘Log’,’a’) file.write(test()) file.close() Но когда…


запись вывода в файл CSV

У меня есть код для извлечения данных и сохранения выходных данных в файл csv с помощью python. пример вывода. 66.100:5 247.600:388 когда это записывается в файл csv, он выглядит так, как показано…


Запись вывода функции в текстовый файл

Я ищу, чтобы записать содержимое pandas dataframe в текстовый файл. Это образец dataframe, с которым я работаю: last_week = pd.date_range(start=(datetime.today() — timedelta(weeks=1)),…

3 способа записи списка в файл на Python

Краткое описание: В этой краткой статье демонстрируются три способа записи списка в файл на языке сценариев Python.

В предыдущем совете по написанию сценариев мы показали вам, как выполнять команды Shell в Python. В этой статье мы покажем вам несколько способов записи списка в файл на Python.

 

Запись списка в файл на Python

На самом деле методы, которые мы собираемся обсудить здесь, используются для записи текста в файл на Python. В примерах, которые мы здесь используем, обсуждается запись списка в файл, но вы можете использовать его для написания любого текста. строка и т. д. с использованием функций, упомянутых здесь.

 

Метод 1: Запись списка в файл строка за строкой в ​​Python, используя print

Команда печати в Python может использоваться для печати содержимого списка в файл. Элементы списка будут добавлены в новой строке в выходном файле.

Вот пример программы на Python для вашей справки:

MyList = ["Самара", "Сочи", "Мурманск", "Анапа"] 
MyFile = open ('output.txt', 'w')
for element in MyList:
    print >>MyFile, element
MyFile.close()

 

Файл output.txt открывается в режиме записи. Цикл for в python повторяется для каждого элемента в списке. Команды печати записывают элемент в открытый файл.

Если вы используете команду cat для отображения содержимого выходного файла , это будет так:

Самара
Сочи
Мурманск
Анапа

 

Как видите, элементы списка записывались построчно в выходной файл.

В примерах файл был открыт в режиме записи с опцией ‘w’. Все предыдущее содержимое файла в этом режиме будет перезаписано.

Если вы хотите сохранить предыдущее содержимое файла, вы можете открыть файл в режиме добавления, используя опцию «a» вместо «w».

 

Способ 2: записать список в файл, используя функцию записи в Python

Теперь давайте посмотрим, как можно сохранить список в файл на Python. Мы собираемся использовать функцию Write().

Функция write() принимает строку в качестве аргумента. Итак, мы снова будем использовать цикл for для итерации каждого элемента в списке и записи его в файл.

Вот пример программы на Python:

MyList = ["Самара", "Сочи", "Мурманск", "Анапа"] 
MyFile=open('output.txt', 'w')
for element in MyList:
     MyFile.write(element)
     MyFile.write('\n')
MyFile.close()

 

Обратите внимание, что элементы в списке не имеют символа новой строки. Вот почему мы добавляем символ новой строки ‘\ n’ после каждой итерации, чтобы элементы списка записывались в файл построчно. Если вы этого не сделаете, вы увидите все содержимое списка в одной строке.

 

Способ 3: записать все строки в файл одновременно, используя функцию writelines()

Два других метода, которые мы видели, записывали содержимое списка в файл построчно. Метод writelines() отличается. Этот метод принимает список в качестве входных данных и записывает список как есть в открытый файл.

Вот простая программа:

MyList = ["Самара", "Сочи", "Мурманск", "Анапа"] 

MyFile = open ('output.txt', 'w') 
MyFile.writelines (MyList) 
MyFile.close ()

 

Если вы используете команду для просмотра файла в командной строке Linux , вот что вы увидите в выводе:

СамараСочиПарисАнапа

 

Это не самый красивый вывод. Но это точное содержание списка.

Если вы хотите печатать построчно текст в файл с помощью функции writelines, вы все равно можете это сделать, но вам придется приложить дополнительные усилия.

Здесь вы можете изменить сам список и добавить символ новой строки после каждого элемента. И теперь, если вы напечатаете список с помощью writelines(), вы получите вывод построчно.

Вот пример программы для этого:

MyList = ["Самара", "Сочи", "Мурманск", "Анапа"] 

MyFile = open ('output.txt', 'w') 
MyList = map (lambda x: x + '\ n', MyList) 
MyFile.writelines (MyList) 
MyFile.close ()

 

Мы надеемся, что этот быстрый небольшой совет помог вам в написании списка в файл, используя Python. Если вы используете другой способ, поделитесь им с нами. Если статья помогла вам, пожалуйста, дайте нам знать, оставив комментарий ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Запись файлов — Документация Python для сетевых инженеров 3.0

При записи, очень важно определиться с режимом открытия файла, чтобы случайно его не удалить:

  • w — открыть файл для записи. Если файл существует, то его содержимое удаляется
  • a — открыть файл для дополнения записи. Данные добавляются в конец файла

При этом оба режима создают файл, если он не существует.

Для записи в файл используются такие методы:

  • write() — записать в файл одну строку
  • writelines() — позволяет передавать в качестве аргумента список строк

write()

Метод write ожидает строку, для записи.

Для примера, возьмем список строк с конфигурацией:

In [1]: cfg_lines = ['!',
   ...:  'service timestamps debug datetime msec localtime show-timezone year',
   ...:  'service timestamps log datetime msec localtime show-timezone year',
   ...:  'service password-encryption',
   ...:  'service sequence-numbers',
   ...:  '!',
   ...:  'no ip domain lookup',
   ...:  '!',
   ...:  'ip ssh version 2',
   ...:  '!']

Открытие файла r2.txt в режиме для записи:

In [2]: f = open('r2.txt', 'w')

Преобразуем список команд в одну большую строку с помощью join:

In [3]: cfg_lines_as_string = '\n'.join(cfg_lines)

In [4]: cfg_lines_as_string
Out[4]: '!\nservice timestamps debug datetime msec localtime show-timezone year\nservice timestamps log datetime msec localtime show-timezone year\nservice password-encryption\nservice sequence-numbers\n!\nno ip domain lookup\n!\nip ssh version 2\n!'

Запись строки в файл:

In [5]: f.write(cfg_lines_as_string)

Аналогично можно добавить строку вручную:

In [6]: f.write('\nhostname r2')

После завершения работы с файлом, его необходимо закрыть:

Так как ipython поддерживает команду cat, можно легко посмотреть содержимое файла:

In [8]: cat r2.txt
!
service timestamps debug datetime msec localtime show-timezone year
service timestamps log datetime msec localtime show-timezone year
service password-encryption
service sequence-numbers
!
no ip domain lookup
!
ip ssh version 2
!
hostname r2

writelines()

Метод writelines() ожидает список строк, как аргумент.

Запись списка строк cfg_lines в файл:

In [1]: cfg_lines = ['!',
   ...:  'service timestamps debug datetime msec localtime show-timezone year',
   ...:  'service timestamps log datetime msec localtime show-timezone year',
   ...:  'service password-encryption',
   ...:  'service sequence-numbers',
   ...:  '!',
   ...:  'no ip domain lookup',
   ...:  '!',
   ...:  'ip ssh version 2',
   ...:  '!']

In [9]: f = open('r2.txt', 'w')

In [10]: f.writelines(cfg_lines)

In [11]: f.close()

In [12]: cat r2.txt
!service timestamps debug datetime msec localtime show-timezone yearservice timestamps log datetime msec localtime show-timezone yearservice password-encryptionservice sequence-numbers!no ip domain lookup!ip ssh version 2!

В результате все строки из списка записались в одну строку файла, так как в конце строк не было символа \n.

Добавить перевод строки можно по-разному. Например, можно просто обработать список в цикле:

In [13]: cfg_lines2 = []

In [14]: for line in cfg_lines:
   ....:     cfg_lines2.append( line + '\n' )
   ....:

In [15]: cfg_lines2
Out[15]:
['!\n',
 'service timestamps debug datetime msec localtime show-timezone year\n',
 'service timestamps log datetime msec localtime show-timezone year\n',
 'service password-encryption\n',
 'service sequence-numbers\n',
 '!\n',
 'no ip domain lookup\n',
 '!\n',
 'ip ssh version 2\n',

Если итоговый список записать заново в файл, то в нём уже будут переводы строк:

In [18]: f = open('r2.txt', 'w')

In [19]: f.writelines(cfg_lines2)

In [20]: f.close()

In [21]: cat r2.txt
!
service timestamps debug datetime msec localtime show-timezone year
service timestamps log datetime msec localtime show-timezone year
service password-encryption
service sequence-numbers
!
no ip domain lookup
!
ip ssh version 2
!

Работа с файлами в Python: открытие, чтение, запись в файл

Загрузить данные в программу из файла, выгрузить данные в файл, записывать историю обращений к программе в специальный файл — всё это очень частые задачи.

Как открыть файл

Чтобы открыть файл, используется функция open():

my_file = open("myfile.txt", "r")
file_contents = my_file.read()
my_file.close()

В этом коде:

  • Функция open() принимает на вход 2 аргумента: путь до файла и права, с которыми его открыть. r — от read, т.е. мы просим открыть файл в режиме чтения.
  • Функция open() возвращает не текст в файле, а сам файл. Файл как бы теперь открыт, как если вы бы щёлкнули по нему дважды левой клавишей.
  • Метод файла .read() позволяет читать данные из файла. Строка с содержимым файла запишется в переменную file_contents.
  • Метод .close закрывает файл.

Как сделать правильно

Закрывать файлы важно по двум причинам:

  1. Чтобы читать и писать в один и тот же файл из разных мест программы.
  2. Чтобы не превысить лимиты операционной системы. У неё есть ограничение на число одновременно открытых файлов. Ограничение легко превысить, если открывать файлы в цикле.

Однажды вы точно забудете закрыть файл. В Python есть специальная команда на такой случай — with:

with open("myfile.txt", "r") as my_file:
  file_contents = my_file.read()
print(file_contents)

Выглядит немного непривычно, но суть простая: всё, что лежит “внутри” блока with (т.е. с отступом от него) — делается с открытым файлом. Как только файл не нужен, вы убираете отступ и файл сам закроется.

Открыть файл в папке

Допустим, рядом c вашим файлом main.py, из которого вы запускаете код, лежит папка files. В этой папке лежит файл file.txt:

.
├── files
│   └── file.txt
└── main.py

Вам очень нужно открыть файл file.txt, но он спрятался в папке, что же делать? Вот как его открыть:

with open("files/file.txt", "r") as my_file:
  file_contents = my_file.read()
print(file_contents)

Ошибки кодировки

Бывает, что вы знаете, что файл в порядке, но Python читает его со странными символами: ������. Дело в кодировках: одни программы пользуют CP1251, другие ASCII, третьи UTF-8. К сожалению, программистам до сих пор не получилось окончательно перейти к какому-то одному варианту.

Чтобы открыть файл с нужной кодировкой, нужно передать функции open именованный аргумент encoding:

with open("myfile.txt", "r", encoding="ваша кодировка") as my_file:
   

Если вы не знаете кодировку вашего файла, на Хабре есть интересная статья с такой схемой:

Запись в файл

Для записи в файл нужно лишь указать режим w (write) и использовать не .read(), а .write():

my_text = "Хочу записать эту строку в файл"
with open("myfile.txt", "w") as my_file:
  my_file.write(my_text)

Альтернативные статьи

Импортировать текстовый файл в Python

  1. Используйте функцию open() для импорта файла в Python
  2. Используйте функцию numpy.genfromtxt() для импорта файла в Python

Как и в других популярных языках программирования, таких как C, C++ и т. Д., Python поддерживает обработку файлов. Это позволяет программистам иметь дело с файлами и, по сути, выполнять некоторые базовые операции, такие как чтение, запись и некоторые другие параметры обработки файлов для работы с файлами.

Нет необходимости импортировать внешние библиотеки для чтения и записи файлов в Python. Python предоставляет встроенные функции для чтения, записи и создания файлов.

Текстовые или двоичные файлы можно открывать для чтения, записи и изменения, но их нельзя импортировать. Слово импорт здесь может ввести в заблуждение, поэтому во всей статье мы будем называть его открытием файла.

Используйте функцию

open() для импорта файла в Python

Функция open(), как следует из названия, используется для открытия текстового или двоичного файла в Python. Это встроенная функция, поэтому ее можно использовать без импорта какого-либо модуля.

Синтаксис функции open() представлен ниже.

open(path_to_file, mode)

Функция open() имеет несколько параметров, но самые важные из них — первые два, а именно path_to_file и mode.

Режим path_to_file указывает путь или имя файла, а параметр mode указывает режим, в котором мы хотим открыть файл.

Следующий код использует функцию open() для открытия текстового файла в Python.

f = open('file1.txt', 'r')

Эта строка кода открывает файл с именем file.txt в режиме чтения.

Открытый файл будет оставаться открытым до тех пор, пока он не будет вручную закрыт программистом с помощью функции close(). Важно закрыть файл, который больше не используется, так как если он не закрыт, файл может быть поврежден или вся программа может дать сбой.

Следующий код использует функцию close() для закрытия файла в Python.

f.close()

Используйте функцию

numpy.genfromtxt() для импорта файла в Python

Для использования функции genfromtxt() необходимо импортировать библиотеку NumPy.

NumPy, сокращение от Numerical Python, представляет собой библиотеку, используемую в Python, которая состоит из объектов многомерных массивов и набора методов для обработки этих массивов. Логические и математические операции могут выполняться с массивами с помощью NumPy.

Функция genfromtxt() используется для загрузки данных из текстового файла. Это особенно полезно при работе с числами и может пригодиться, когда некоторые пропущенные значения необходимо обработать, как указано.

Следующий код использует функцию genfromtxt() для открытия текстового файла в Python.

import numpy as np
...
f = np.genfromtxt(fname='file1.txt')

import дает доступ к другим модулям в программе Python. С другой стороны, файлы либо текстовые, либо двоичные, и они не являются модулями. Модули можно импортировать в код Python, но файлы можно открыть только с помощью двух команд, упомянутых в этой статье.

  • Как удалить файл и каталог на Python
  • Как найти файлы с определенным расширением только на Python
  • Чтение и запись файла Python (1) -txt, log, json, csv, xml файл

    • В обычном автоматизированном тестировании Python часто используется для чтения и записи некоторых файлов. Среди них наиболее часто используемые форматы файлов: txt, log, json, csv, xml, zip, tar, gz, rar, excel, эти десять форматов файлов.
    • Среди них пять форматов txt, log, json, csv и xml могут работать с использованием стандартной библиотеки python.
    • Методы чтения и записи файлов .txt и .log одинаковы. Далее используются только файлы .txt в качестве примера.
    1) Напишите:
    with open("test.txt","w") as f:
        f.write("test string")
    
    2) Прочтите:
    with open("test.txt","r") as f:
        print(f.read())
    
    3) Вопросы, требующие внимания:
    • Общий файловый режим
      r: открыть в режиме чтения
      w: открывается записью,
      a: открыть в режиме добавления (начать с EOF, при необходимости создать новый файл)
    • Мультимедиа mp3, mp4 или режим, содержащий специальные символы
      rb: открыть в режиме двоичного чтения
      wb: открыть в режиме двоичной записи
      ab: открыть в режиме двоичного добавления
    • Другой:
      r+,w+,a+,rb+,wb+,ab+
    4) Python читает большие файлы (на уровне ГБ):
    # Распределение памяти обрабатывается интерпретатором python, который очень эффективен при чтении и требует меньше ресурсов.
    with open("test.txt","r") as f:
        for line in f:
           print(line)
    
    1) Напишите:
    import json
    test_dict = {'bigberg': [7600, {1: [['iPhone', 6300], ['Bike', 800], ['shirt', 300]]}]}
     #dumps Преобразование данных в строку
    json_str = json.dumps(test_dict,indent=4,sort_keys=True)
    with open('test.json',"w") as f:
        f.write(json_str)
    
    2) Прочтите:
    import json
    with open('test.json',"r") as f:
        json_dic = json.load(f)
        print(json_dic["bigberg"])
    
    • Используйте класс писателя в csv
    1) Напишите:
    import csv
    # Могут использоваться как числа, так и строковые числа
    datas = [['name', 'age'],
             ['Bob', 14],
             ['Tom', 23],
            ['Jerry', '18']]
    with open('example.csv', 'w', newline='') as f:
        writer = csv.writer(f)
        for row in datas:
            writer.writerow(row)
    
    2) Прочтите:
    import csv
    with open("example.csv",'r') as f:
        reader = csv.reader(f)
        for row in reader:
            print(reader.line_num, row)
    
    • Используйте класс Dictwriter в csv
    1) Напишите:
    import csv
    headers = ['name', 'age']
    datas = [{'name':'Bob', 'age':23},
            {'name':'Jerry', 'age':44},
            {'name':'Tom', 'age':15}
            ]
    with open('example.csv', 'w', newline='') as f:
             # Заголовок передается здесь как первая строка данных
        writer = csv.DictWriter(f, headers)
        writer.writeheader()
        for row in datas:
            writer.writerow(row)
    
    2) Прочтите:
    import csv
    filename = 'example.csv'
    with open(filename) as f:
        reader = csv.DictReader(f)
        for row in reader:
                     # name - это некоторые данные в первой строке таблицы, в качестве ключа
            name = row['name']
            print(name)
    
    1) Напишите:
    #coding=utf-8
     # Создать xml файл
    import xml.dom.minidom
    def GenerateXml():
        impl = xml.dom.minidom.getDOMImplementation()
    
        dom = impl.createDocument(None, 'CONFIG_LIST', None)
        root = dom.documentElement
    
        employee = dom.createElement('COMP')
        root.appendChild(employee)
    
        nameE = dom.createElement('path')
             nameE.setAttribute ("value", "aaaaaaaaaaa") # Добавить атрибут
        nameT = dom.createTextNode('linux')
        nameE.appendChild(nameT)
        employee.appendChild(nameE)
    
        f = open('config_new.xml', 'a')
        dom.writexml(f, addindent='  ', newl='\n')
        f.close()
    GenerateXml()
    
    2) Прочтите:
    import xml.etree.cElementTree as ET
    
    tree = ET.parse("config_new.xml")
    root = tree.getroot()
    
     COMP = root.findall ('COMP') [0] # Метод сопоставления подэлементов первого уровня по имени тега или xpath
    print("Tag:", COMP.tag, "Attributes:", COMP.attrib, "Text:", COMP.text.strip(), "Tail:", COMP.tail)
    
     path = COMP.findall ("path") [0] # Метод сопоставления подэлементов первого уровня по имени тега или xpath
    print("Tag:", path.tag, "Attributes:", path.attrib, "Text:", path.text.strip(), "Tail:", path.tail)
    
     Класс #Element и класс ElementTree имеют метод iter () для рекурсивного обхода всех дочерних элементов элемента / дерева.
     для дочернего элемента в tree.iter (tag = 'path'): #tree - это объект ElementTree
         print("Tag:", child.tag, "Attributes:", child.attrib, "Text:", child.text.strip())
    

    Запись в файл с помощью функции Python print ()

    Вступление

    Функция Python print() обычно используется для отображения текста либо в командной строке, либо в интерактивном интерпретаторе, в зависимости от того, как выполняется программа Python. Однако мы можем изменить его поведение, чтобы записывать текст в файл, а не в консоль.

    В этой статье мы рассмотрим множество способов записи в файл с помощью функции print() .

    Перенаправление вывода скрипта Python в терминал

    Быстрый и грязный способ перенаправить вывод скрипта Python — прямо из командной строки во время выполнения скрипта.

    Например, если бы у нас был файл Python с именем hello.py со следующим содержимым:

     print("Hallo") # Deliberately in German 
    

    Мы можем перенаправить вывод файла в оболочку, используя единственную правую угловую скобку:

     $ python3 hello.py > output.txt 
    

    Если мы откроем наш только что созданный output.txt , мы увидим следующее содержимое:

     Hallo 
    

    Однако при использовании этого метода весь вывод скрипта записывается в файл. Часто бывает более гибко выполнить это перенаправление из самого скрипта Python.

    Перенаправление стандартного выходного потока

    В Python print() более гибкая, чем вы думаете. Он не был жестко запрограммирован таким образом, чтобы указанный текст можно было только записать на дисплей. Вместо этого он отправляет текст в место, называемое стандартным потоком вывода , также известным как stdout .

    Все системы UNIX имеют три основных канала — стандартный канал ввода ( stdin ), стандартный канал вывода ( stdout ) и стандартный канал ошибок ( stderr ).

    По умолчанию стандартный канал вывода указывает на интерактивное окно, используемое для выполнения программы, поэтому мы обычно видим текст, распечатанный на экране. Однако для удобства стандартный вывод может быть перенаправлен в другие места, например в файлы.

    Если стандартный вывод перенаправляется в конкретный файл, текст, указанный в функции print() будет записан в этот файл, а не отображаться на экране.

    В Python ссылку на стандартный вывод можно получить с помощью объекта stdout модуля sys Это файловый объект , то есть у него есть методы, которые позволяют Python читать и писать из него, как из реального файла.

    Давайте посмотрим на пример, в котором мы меняем stdout на файл:

     import sys 
     
     print('This message will be displayed on the screen.') 
     
     original_stdout = sys.stdout # Save a reference to the original standard output 
     
     with open('filename.txt', 'w') as f: 
     sys.stdout = f # Change the standard output to the file we created. 
     print('This message will be written to a file.') 
     sys.stdout = original_stdout # Reset the standard output to its original value 
    

    Функция print() принимает предоставленный строковый аргумент, добавляет в конец символ новой строки и вызывает метод stdout.write() для записи его в стандартный вывод.

    В приведенном выше примере мы сначала печатаем строку текста, как мы привыкли, которая будет отображаться в консоли при запуске файла. Затем мы переназначили stdout нашему пользовательскому файловому объекту — f . Поскольку файловый объект имеет совершенно допустимый write() , наше напечатанное значение без проблем записывается в файл.

    Обратите внимание, что перед изменением исходного значения стандартного вывода рекомендуется сохранять в переменной исходное значение. Таким образом мы можем сбросить стандартный вывод до исходного значения после того, как мы закончим, что поможет избежать путаницы.

    Сохраним код в новый файл printToFile.py . А затем выполним его:

     $ python3 printToFile.py 
    

    В Терминале мы увидим следующий вывод:

     This message will be displayed on the screen. 
    

    И сценарий создаст новый файл с именем filename.txt со следующим содержимым:

     This message will be written to a file. 
    

    Вы успешно перенаправили данные из стандартного потока вывода в файл. Давайте посмотрим, как мы можем сделать это с другим популярным файловым объектом, предназначенным для ошибок программирования.

    Перенаправление стандартного потока ошибок

    В Python ошибки записываются в стандартный поток ошибок , также известный как stderr . По умолчанию это также интерактивное окно, но его можно изменить с помощью объекта sys.stderr Если бы мы хотели вывести значения на stderr , мы могли бы просто перенаправить sys.stdout чтобы он указывал на sys.stderr .

    Создайте файл с именем printToStderr.py и добавьте следующий код:

     import sys 
     
     print('This message will be displayed via standard output.') 
     
     original_stdout = sys.stdout # Save a reference to the original standard output 
     
     sys.stdout = sys.stderr # Redirect the standard output to the standard error. 
     print('This message will be displayed via the standard error.') 
     
     sys.stdout = original_stdout # Reset the standard output to its original value 
    

    Этот пример почти идентичен предыдущему, за исключением того, что вместо перенаправления стандартного потока вывода в файл мы перенаправляем его в стандартный поток ошибок. Если стандартный поток ошибок также был перенаправлен куда-то еще, вывод будет отправлен в это место, а не на экран.

    Запустим этот файл:

     $ python3 printToStderr.py 
    

    Наш вывод покажет:

     This message will be displayed via standard output. 
     This message will be displayed via the standard error. 
    

    Хотя нам это может показаться обычным выводом, для компьютера он отображается через разные конвейеры.

    Печать с использованием параметра «файл»

    В предыдущих примерах мы явно перенаправили стандартный вывод на другой файловый объект, изменив объект stdout Однако для удобства мы можем сделать это прямо из функции print() , указав расположение вывода с помощью параметра file

    Например, если бы мы хотели печатать прямо в файл, не изменяя стандартный stdout всего скрипта, мы бы написали:

     import sys 
     
     print('This message will be displayed on the screen.') 
     
     with open('filename.txt', 'w') as f: 
     print('This message will be written to a file.', file=f) 
    

    Поскольку мы не возились с явным перенаправлением стандартного вывода, нам больше не нужно сбрасывать его до исходного значения. В результате это предпочтительный способ записи в файл с помощью функции print() .

    Примечание. Хотя имя параметра — file , помните, что он работает с любыми файловыми объектами. Например, если вы хотите печатать в stderr , вы должны изменить print() на:

     print('This message will be written to stderr.', file=sys.stderr) 
    

    Заключение

    В этой статье мы обсудили перенаправление print() Python с использованием различных методов. Эти методы включали перенаправление вывода сценария Python из командной строки, перенаправление стандартного вывода в сценариях Python и указание файлового объекта в file непосредственно в функции print() .

    об авторе

    Эта статья была написана Якобом Стопаком, разработчиком программного обеспечения и консультантом, который страстно помогает другим улучшить свою жизнь с помощью кода. Джейкоб является автором Руководства по основам кодирования для разработчиков , вводной книги, в которой рассматриваются основные концепции и инструменты кодирования. Он содержит главы по базовой компьютерной архитектуре, Интернету, командной строке, HTML, CSS, JavaScript, Python, Java, базам данных / SQL, Git и многому другому.


    Смотрите также

    Запись в файл в Python

    Python предоставляет встроенные функции для создания, записи и чтения файлов. Существует два типа файлов, которые могут обрабатываться в Python: обычные текстовые файлы и двоичные файлы (написанные на двоичном языке, нули и единицы).

    • Текстовые файлы: В файлах этого типа каждая строка текста заканчивается специальным символом EOL (конец строки), который по умолчанию является символом новой строки (‘\ n’) в Python.
    • Двоичные файлы: В файлах этого типа отсутствует терминатор для строки, и данные сохраняются после их преобразования в понятный для машины двоичный язык.

    Примечание: Чтобы узнать больше об обработке файлов, щелкните здесь.

    Внимание компьютерщик! Укрепите свои основы с помощью курса Python Programming Foundation и изучите основы.

    Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS . И чтобы начать путешествие по машинному обучению, присоединитесь к курсу Машинное обучение — базовый уровень

    Оглавление



    Режим доступа

    Режимы доступа определяют типы операций, возможных в открытом файле.Это относится к тому, как файл будет использоваться после его открытия. Эти режимы также определяют расположение дескриптора файла в файле. Дескриптор файла подобен курсору, который определяет, откуда данные должны быть прочитаны или записаны в файле. Различные режимы доступа для чтения файла: —

    1. Только запись («w»): Откройте файл для записи. Для существующего файла данные усекаются и перезаписываются. Ручка находится в начале файла. Создает файл, если файл не существует.
    2. Запись и чтение («w +»): Откройте файл для чтения и записи. Для существующего файла данные усекаются и перезаписываются. Ручка находится в начале файла.
    3. Только добавление (‘a’): Откройте файл для записи. Если файл не существует, он создается. Ручка находится в конце файла. Записываемые данные будут вставлены в конце после существующих данных.

    Примечание: Чтобы узнать больше о режиме доступа, щелкните здесь.

    Открытие файла

    Это делается с помощью функции open () . Для этой функции импорт модуля не требуется.

    Синтаксис:

    File_object = open (r "Имя_файла", "Режим_доступа")
     

    Файл должен существовать в том же каталоге, что и программный файл python, иначе полный адрес файла должен быть записан вместо имени файла.

    Примечание: r помещается перед именем файла, чтобы символы в строке имени файла не рассматривались как специальные символы.Например, если в адресе файла есть \ temp, то \ t рассматривается как символ табуляции и возникает ошибка недопустимого адреса. R делает строку необработанной, то есть сообщает, что строка не содержит каких-либо специальных символов. Букву r можно игнорировать, если файл находится в том же каталоге, а адрес не помещается.

    файл1 = открытый ( "MyFile.txt" , "w" )

    файл2 = открытый (r "D: \ Text \ MyFile2.txt " , " w + " )

    Здесь file1 создается как объект для MyFile1 и file2 как объект для MyFile2.

    Закрытие файла

    close () функция закрывается файл и освобождает пространство памяти, занятое этим файлом. Он используется в то время, когда файл больше не нужен или если его нужно открыть в другом файловом режиме.


    Синтаксис:

    File_object.close ()
     

    файл1 = открыть ( "MyFile.txt " , " w " )

    file1.close ()

    Запись в файл

    Есть два способа записи в файл.

    1. запись ( ): Вставляет строку str1 в одну строку в текстовый файл.
      File_object.write (str1)
       
    2. writelines (): Для списка строковых элементов каждая строка вставляется в текстовый файл. Используется для одновременной вставки нескольких строк.
      File_object.writelines (L) для L = [str1, str2, str3]
       

    Примечание. ‘\ n’ обрабатывается как специальный двухбайтовый символ.

    Пример:

    файл1 = открытый ( 'myfile.txt' , 'w' )

    = [ "Это Дели \ n" , "Это Париж \ n" , "Это Лондон \ n" ]

    s = "Привет \ n"

    файл1.запись (и)

    file1.writelines (L)

    file1.close ()

    file1 = open ( open 'myfile.txt' , 'r' )

    print (file1.read ())

    file1.close ()

    Вывод:

    Привет
    Это Дели
    Это париж
    Это лондон
     
    Добавление к файлу

    Когда файл открывается в режиме добавления, дескриптор располагается в конце файла.Записываемые данные будут вставлены в конце после существующих данных. Давайте посмотрим на пример ниже, чтобы прояснить разницу между режимом записи и режимом добавления.

    файл1 = открыть ( "myfile.txt" , "w" )

    L = [ "Это это Дели \ n " , " Это Париж \ n " , " Это Лондон \ n " ]

    file1.Writelines (L)

    file1.close ()

    file1 = открыть ( "myfile.txt" , "a" )

    file1.write ( "Сегодня \ n" )

    file1.close ()

    file1 = открыть ( "myfile.txt « , « r » )

    print ( « Вывод строк чтения после добавления » )

    print (file1.чтение ())

    печать ()

    file1.close ()

    file1 = открыть ( "myfile.txt" , "w" )

    file1.write ( "Tomorrow \ n" )

    file1.close ()

    file1 = открыть ( "myfile.txt " , " r " )

    print ( " Вывод строк чтения после записи " )

    print (file1.read ())

    печать ()

    file1.close ()

    Выход:

    Вывод строк чтения после добавления
    Это Дели
    Это париж
    Это лондон
    Сегодня
    
    
    Вывод строк чтения после записи
    Завтра
     
    С оператором

    с оператором в Python используется при обработке исключений, чтобы сделать код более чистым и читабельным.Это упрощает управление общими ресурсами, такими как файловые потоки. В отличие от описанных выше реализаций, при использовании оператора with нет необходимости вызывать file.close () . Сам с заявлением обеспечивает правильное получение и высвобождение ресурсов.

    Синтаксис:

    с открытым именем файла в виде файла:
     

    L = [ "Это Дели \ n" , "Это Париж \ n" , "Это Лондон \ n " ]

    с открытым ( " myfile.txt " , " w " ) как file1:

    file1.write ( " Hello \ n " )

    file1.writelines ( L)

    с открытием ( «myfile.txt» , «r +» ) как файл1:

    печать (файл1.чтение ())

    Выход:

    Привет
    Это Дели
    Это париж
    Это лондон
     

    Примечание: Чтобы узнать больше о выписке, нажмите здесь.


    Как писать в текстовый файл на Python

    Резюме : в этом руководстве вы узнаете, как писать в текстовые файлы на Python.

    TL; DR

    Ниже показано, как записать строку в текстовый файл:

     

    с открытым ('readme.txt ',' w ') как f: f.write ('readme')

    Язык кода: JavaScript (javascript)

    Этапы записи в текстовые файлы

    Для записи в текстовый файл в Python выполните следующие действия:

    • Сначала откройте текстовый файл для записи (или добавления) используя функцию open () .
    • Во-вторых, запишите в текстовый файл с помощью метода write () или writelines () .
    • В-третьих, закройте файл с помощью метода close () .

    Ниже показан базовый синтаксис функции open () :

     

    f = open (path_to_file, mode)

    Функция open () принимает множество параметров. Но вы сосредоточитесь на первых двух:

    • Параметр path_to_file указывает путь к текстовому файлу, который вы хотите открыть для записи.
    • Параметр mode указывает режим, для которого вы хотите открыть текстовый файл.

    Для записи в текстовый файл используется один из следующих режимов:

    Режим Описание
    'w' Открыть текстовый файл для ввода текста
    'a' Открыть текстовый файл для добавления текста

    Функция open () возвращает файловый объект. И у файлового объекта есть два полезных метода для записи текста в файл: write () и writelines () .

    Метод write () записывает строку в текстовый файл, а метод writelines () записывает сразу список строк в файл.

    Фактически, метод writelines () принимает итеративный объект, а не только список, поэтому вы можете передать кортеж строк, набор строк и т. Д. Методу writelines () .

    Чтобы записать строку в текстовый файл, вам необходимо вручную добавить символ новой строки:

     

    f.write ('\ n') f.Writelines ('\ n')

    Язык кода: JavaScript (javascript)

    И вы можете добавить символы новой строки.

    Написание примеров текстовых файлов

    В следующем примере показано, как использовать функцию write () для записи списка текстов в текстовый файл:

     

    lines = ['Readme', 'Как писать текстовые файлы в Python '] с open ('readme.txt', 'w') как f: для строки в строках: f.write (строка) f.write ('\ n')

    Язык кода: JavaScript (javascript)

    Если файл readme.txt не существует, функция open () создаст новый файл.

    Ниже показано, как записать список текстовых строк в текстовый файл:

     

    lines = ['Readme', 'Как писать текстовые файлы в Python'] с open ('readme.txt', 'w') как f: f.writelines (lines)

    Язык кода: JavaScript (javascript)

    Если вы обрабатываете каждый элемент списка как строку, вам необходимо объединить его с символом новой строки следующим образом:

     

    lines = [ «Readme», «Как писать текстовые файлы на Python»] с открытым ('readme.txt ',' w ') как f: f.write ('\ n'.join (lines))

    Язык кода: JavaScript (javascript)

    Добавление текстовых файлов

    Для добавления в текстовый файл необходимо открыть текстовый файл для режима добавления. В следующем примере в файл readme.txt добавляются новые строки:

     

    more_lines = ['', 'Добавить текстовые файлы', 'Конец'] с open ('readme.txt', 'a') как f: f.writelines ('\ n'.join (more_lines))

    Язык кода: JavaScript (javascript)

    Вывод:

    Запись в текстовый файл UTF-8

    Если вы напишите символы UTF-8 в текстовый файл, используя код из предыдущих примеров, вы получите следующую ошибку:

     

    UnicodeEncodeError: кодек 'charmap' не может кодировать символы в позиции 0-44: символы отображаются в

    Code язык: HTML, XML (xml)

    Чтобы открыть файл и записать в него символы UTF-8, вам необходимо передать параметр encoding = 'utf-8' в функцию open () .

    В следующем примере показано, как записать символы UTF-8 в текстовый файл:

     

    quote = '成功 を 収 め る 人 と は げ て き た レ ン ガ っ か り し た 基 盤 こ が で き 人 と で あ る。' с open ('quotes.txt', 'w', encoding = 'utf-8') как f: f.write (цитата)

    Язык кода: JavaScript (javascript)

    Сводка

    • Используйте функцию open () с режимом w или a , чтобы открыть текстовый файл для добавления.
    • Всегда закрывайте файл после завершения записи с помощью метода close () или используйте команду with при открытии файла.
    • Используйте методы write () и writelines () для записи в текстовый файл.
    • Передайте encoding = 'utf-8' в функцию open () для записи символов UTF-8 в файл.

    Вы нашли это руководство полезным?

    Запись файлов с использованием Python

    Как указывалось в предыдущей статье, посвященной чтению данных из файлов, обработка файлов относится к важным знаниям каждого профессионального программиста на Python.Эта функция является основной частью языка Python, и для ее правильной загрузки не требуется загружать дополнительный модуль.

    Основы написания файлов на Python

    Общие методы работы с файлами: open (), , чтобы открыть файл, seek (), , чтобы установить текущую позицию файла по заданному смещению, и close (), , чтобы закрыть файл после этого. Метод open () возвращает дескриптор файла, представляющий файловый объект, который будет использоваться для доступа к файлу для чтения, записи или добавления.

    Для записи в файл необходимо принять несколько решений - имя файла, в котором будут храниться данные, и режим доступа к файлу. Доступны два режима: запись в новый файл (и перезапись любых существующих данных) и добавление данных в конец уже существующего файла. Соответствующие сокращения - «w» и «a», и их необходимо указать перед открытием файла.

    В этой статье мы объясним, как записывать данные в файл построчно, как список строк и как добавлять данные в конец файла.

    Запись одной строки в файл

    Этот первый пример очень похож на запись в файлы с помощью популярных языков программирования C и C ++, как вы увидите в листинге , листинг 1 . Процесс довольно прост. Сначала мы открываем файл с помощью метода open () для записи, записываем одну строку текста в файл с помощью метода write () , а затем закрываем файл с помощью метода close () . Имейте в виду, что из-за того, как мы открыли файл helloworld.txt "он либо будет создан, если он еще не существует, либо будет полностью перезаписан.

      filehandle = open ('helloworld.txt', 'ш')
    filehandle.write ('Привет, мир! \ n')
    filehandle.close ()
      

    Листинг 1

    Весь этот процесс можно сократить с помощью оператора с . В листинге 2 показано, как это записать. Как уже было сказано ранее, имейте в виду, что при открытии файла "helloworld.txt" таким образом либо создается, если он еще не существует, либо он полностью перезаписывается, в противном случае.

      с open ('helloworld.txt', 'w') в качестве дескриптора файла:
        filehandle.write ('Привет, мир! \ n')
      

    Листинг 2

    Запись списка строк в файл

    На самом деле файл состоит не только из одной строки, но и из гораздо большего количества данных. Таким образом, содержимое файла хранится в списке, представляющем файловый буфер. Для записи всего файлового буфера воспользуемся методом writelines () . Листинг 3 дает вам пример этого.

      filehandle = open ("helloworld.txt", "w")
    filebuffer = [«первая строка текста», «вторая строка текста», «третья строка»]
    filehandle.writelines (файловый буфер)
    filehandle.close ()
      

    Листинг 3

    Запустив программу Python, показанную в листинге 3 , а затем используя команду cat , мы видим, что файл helloworld.txt имеет следующее содержимое:

      $ cat helloworld.txt
    первая строка текста вторая строка текста третья строка
      

    Листинг 4

    Это происходит потому, что метод writelines () не добавляет автоматически разделители строк при записи данных. Листинг 5 показывает, как этого добиться, записывая каждую строку текста в одну строку, добавляя разделитель строк "\ n". При использовании выражения генератора каждая строка заменяется разделителем «строка плюс строка». Опять же, вы можете сформулировать это, используя с оператором .

      с open ('helloworld.txt', 'w') в качестве дескриптора файла:
        filebuffer = ["строка текста", "другая строка текста", "третья строка"]
        filehandle.writelines ("% s \ n"% строка для строки в файловом буфере)
      

    Листинг 5

    Теперь выходной файл helloworld.txt "имеет желаемое содержимое, как показано в листинге 6 :

      $ cat helloworld.txt
    первая строка текста
    вторая строка текста
    третья линия
      

    Листинг 6

    Интересно, что в Python есть способ использовать перенаправление вывода для записи данных в файлы. Листинг 7 показывает, как это кодировать для Python 2.x.

     
    filename = "helloworld.txt"
    
    
    filecontent = ["Привет, мир", "вторая строка" и "третья строка"]
    
    с open (filename, 'w') в качестве дескриптора файла:
        
        для строки в содержании файла:
            печать >> дескриптор файла, строка
      

    Листинг 7

    Для последних выпусков Python это больше не работает таким же образом.Чтобы сделать что-то подобное, мы должны использовать модуль sys . Это позволяет нам получить доступ к стандартным каналам вывода UNIX через sys.stdout , sys.stdin и sys.stderr . В нашем случае мы сохраняем исходное значение выходного канала sys.stdout , сначала (строка 8 в приведенном ниже коде), переопределяем его на дескриптор нашего выходного файла, затем (строка 15), печатаем данные как обычно ( строка 18) и, наконец, восстановить исходное значение выходного канала sys.stdout (строка 21). Листинг 8 содержит пример кода.

     
    import sys
    
    
    filename = "helloworld.txt"
    
    
    оригинал = sys.stdout
    
    
    filecontent = ["Привет, мир", "вторая строка" и "третья строка"]
    
    с open (filename, 'w') в качестве дескриптора файла:
        
        sys.stdout = дескриптор файла
         
        для строки в содержании файла:
            печать (строка)
         
        
        sys.stdout = оригинал
      

    Листинг 8

    Это не обязательно лучший метод, но он дает вам другие возможности для записи строк в файл.

    Добавление данных в файл

    До сих пор мы сохранили данные в новых файлах или в перезаписанных данных в существующих файлах. Но что, если мы хотим добавить данные в конец существующего файла? В этом случае нам нужно будет открыть существующий файл, используя другой режим доступа. Мы меняем это на «a» вместо «w». В листинге 9 показано, как с этим справиться. И , листинг 10, делает то же самое, но скорее использует с оператором .

      filehandle = open ('helloworld.txt ',' а ')
    filehandle.write ('\ n' + 'Привет, мир! \ n')
    filehandle.close ()
      

    Листинг 9

    Ознакомьтесь с нашим практическим практическим руководством по изучению Git с лучшими практиками, общепринятыми стандартами и включенной шпаргалкой. Прекратите гуглить команды Git и на самом деле выучите его!

      с open ('helloworld.txt', 'a') в качестве дескриптора файла:
        filehandle.write ('\ n' + 'Привет, мир! \ n')
      

    Листинг 10

    Использование того же helloworld.txt из предыдущего, запуск этого кода приведет к следующему содержимому файла:

      $ cat helloworld.txt
    Привет, мир
    вторая линия
    и третья строка
    
    Привет, мир!
      

    Заключение

    Запись данных в виде обычного текста в файлы или добавление данных к существующим файлам в Python так же просто, как чтение из файлов. Как только файл закрывается после записи или добавления данных, Python запускает вызов синхронизации. В результате обновленный файл сразу же записывается на диск.

    Список литературы

    Благодарности

    Автор благодарит Золеку Хатитонгве за поддержку при подготовке статьи.

    python - правильный способ записи строки в файл?

    Если вы пишете много данных и скорость вызывает беспокойство, вам, вероятно, следует использовать f.write (...) . Я провел быстрое сравнение скорости, и он был значительно быстрее, чем print (..., file = f) при выполнении большого количества операций записи.

      время импорта
    
    старт = старт = время.время()
    с open ("test.txt", 'w') как f:
        для i в диапазоне (10000000):
            # print ('Это тест скорости', file = f)
            # f.write ('Это тест скорости \ n')
    конец = время.время ()
    печать (конец - начало)
      

    В среднем запись завершилась за 2,45 секунды на моей машине, тогда как печать заняла примерно в 4 раза больше времени (9,76 секунды). При этом в большинстве реальных сценариев это не будет проблемой.

    Если вы выберете print (..., file = f) , вы, вероятно, обнаружите, что время от времени хотите подавлять новую строку или заменять ее чем-то другим.Это можно сделать, установив необязательный параметр end , например;

      с открытым ("тест", 'w') как f:
        print ('Foo1,', файл = f, конец = '')
        print ('Foo2,', файл = f, конец = '')
        print ('Foo3', файл = f)
      

    Какой бы способ вы ни выбрали, я бы предложил использовать с , поскольку это значительно упрощает чтение кода.

    Обновление : Эта разница в производительности объясняется тем фактом, что запись имеет высокую степень буферизации и возвращается до того, как действительно произойдет какая-либо запись на диск (см. Этот ответ), тогда как print (вероятно) использует буферизацию строк.Простым тестом для этого может быть проверка производительности при длительной записи, где недостатки (с точки зрения скорости) буферизации строк будут менее выражены.

      начало = начало = время.время ()
    long_line = 'Это тест скорости' * 100
    с open ("test.txt", 'w') как f:
        для i в диапазоне (1000000):
            # print (long_line, file = f)
            # f.write (long_line + '\ n')
    конец = время.время ()
    
    print (конец - начало, "с")
      

    Разница в производительности теперь становится гораздо менее заметной, среднее время равно 2.20 с для напишите и 3,10 с для напишите . Если вам нужно объединить кучу строк, чтобы получить эту длинную строку, производительность пострадает, поэтому варианты использования, в которых print будет более эффективным, немного редки.

    Python - чтение и запись файлов

    В Python модуль ввода-вывода предоставляет методы трех типов операций ввода-вывода; необработанные двоичные файлы, буферизованные двоичные файлы и текстовые файлы. Канонический способ создания файлового объекта - использовать функцию open () .

    Любые файловые операции можно выполнить в следующие три шага:

    1. Откройте файл, чтобы получить объект файла с помощью встроенной функции open (). Существуют различные режимы доступа, которые вы можете указать при открытии файла с помощью функции open ().
    2. Выполнять операции чтения, записи и добавления, используя объект файла, полученный из функции open () .
    3. Закройте и удалите файловый объект.

    Чтение файла

    Файловый объект включает следующие методы для чтения данных из файла.

    • read (chars): читает указанное количество символов, начиная с текущей позиции.
    • readline (): считывает символы, начиная с текущей позиции чтения до символа новой строки.
    • readlines (): читает все строки до конца файла и возвращает объект списка.

    Следующий C: \ myfile.txt будет использоваться во всех примерах чтения и записи файлов.

      Это первая строка.
    Это вторая строка.
    Это третья строка.
      

    В следующем примере выполняется операция чтения с использованием метода read (chars) .

      >>> f = open ('C: \ myfile.txt') # открытие файла
    >>> lines = f.read () # чтение файла
    >>> линии
    «Это первая строка.\ nЭто вторая строка. \ nЭто третья строка. '
    >>> f.close () # закрытие файлового объекта
      

    Выше, f = open ('C: \ myfile.txt') открывает myfile.txt в режиме чтения по умолчанию из текущего каталога и возвращает файловый объект. f.read () Функция считывает все содержимое до EOF в виде строки. Если вы укажете аргумент размера символа в методе read (chars) , тогда он будет читать только это количество символов. f.close () очистит и закроет поток.

    Чтение строки

    В следующем примере показано чтение строки из файла.

      >>> f = open ('C: \ myfile.txt') # открытие файла
    >>> line1 = f.readline () # чтение строки
    >>> line1
    «Это первая строка. \ п '
    >>> line2 = f.readline () # чтение строки
    >>> line2
    «Это вторая строка.\ п '
    >>> line3 = f.readline () # чтение строки
    >>> line3
    «Это третья строка».
    >>> line4 = f.readline () # чтение строки
    >>> line4
    ''
    >>> f.close () # закрытие файлового объекта
      

    Как видите, нам нужно открыть файл в режиме 'r' . Метод readline () вернет первую строку, а затем укажет на вторую строку в файле.

    Чтение всех строк

    Следующий код считывает все строки с помощью функции readlines () .

      >>> f = open ('C: \ myfile.txt') # открытие файла
    >>> lines = f.readlines () # чтение всех строк
    >>> линии
    «Это первая строка. \ nЭто вторая строка. \ nЭто третья строка. '
    >>> f.close () # закрытие файлового объекта
      

    Файловый объект имеет встроенный итератор. Следующая программа читает данный файл построчно до тех пор, пока не будет вызвано StopIteration , т.е.е., EOF достигнут.

      f = открытый ('C: \ myfile.txt')
    в то время как True:
        пытаться:
            строка = следующий (е)
            печать (строка)
        кроме StopIteration:
            перерыв
    f.close ()
      

    Используйте цикл for, чтобы легко прочитать файл.

      f = открытый ('C: \ myfile.txt')
    для строки в f:
        печать (строка)
    f.close ()
      
      Это первая строка.Это вторая строка.
    Это третья строка.
      

    Чтение двоичного файла

    Используйте режим 'rb' в функции open () для чтения двоичных файлов, как показано ниже.

      >>> f = open ('C: \ myimg.png', 'rb') # открытие двоичного файла
    >>> content = f.read () # чтение всех строк
    >>> содержание
    б '\ x89PNG \ r \ n \ x1a \ n \ x00 \ x00 \ x00 \ rIHDR \ x00 \ x00 \ x00 \ x08 \ x00 \ x00 \ x00 \ x08 \ x08 \ x06
    \ x00 \ x00 \ x00 \ xc4 \ x0f \ xbe \ x8b \ x00 \ x00 \ x00 \ x19tEXtSoftware \ x00Adobe ImageReadyq
    \ xc9e \ x00 \ x00 \ x00 \ x8dIDATx \ xdab \ xfc \ xff \ xff? \ x03 \ x0c0 / zP \ n \ xa4b \ x818 \ xeco \ x9c
    \ xc2 \ r \ x90 \ x18 \ x13 \ x03 * 8 \ t \ xc4b \ xbc \ x01 \ xa8X \ x07 $ \ xc0 \ xc8 \ xb4 \ xf0> \\\ x11P \ xd7?
    \ xa0 \ x84 \ r \ x90 \ xb9 \ t \ x88? \ x00q H \ xc1C \ x16 \ xc9 \ x94_ \ xcc \ x025 \ xfd2 \ x88 \ xb1 \ x04
    \ x88 \ x85 \ x90 \ x14 \ xfc \ x05 \ xe2 (\ x16 \ x00 \ xe2 \ xc3 \ x8c \ xc8 \ x8e \ x84: \ xb4 \ x04H5 \ x03
    \ xf1 \\.bD \ xf3E \ x01 \ x90 \ xea \ x07 \ xe2 \ xd9 \ xaeB` \ x82 '
    >>> f.close () # закрытие файлового объекта
      

    Запись в файл

    Файловый объект предоставляет следующие методы записи в файл.

    • запись (и): записать строку s в поток и вернуть количество записанных символов.
    • строк записи (строк): записать список строк в поток. В конце каждой строки должен быть разделитель.

    Создать новый файл и записать

    Следующий код создает новый файл, если он не существует, или заменяет существующий файл.

      >>> f = open ('C: \ myfile.txt', 'w')
    >>> f.write ("Hello") # запись в файл
    5
    >>> f.close ()
    
    # чтение файла
    >>> f = open ('C: \ myfile.txt', 'r')
    >>> f.read ()
    'Привет'
    >>> f.close ()
      

    В приведенном выше примере f = open ("myfile.txt "," w ") оператор открывает myfile.txt в режиме записи, метод open () возвращает объект файла и присваивает его переменной f . 'w' указывает, что файл должен быть доступен для записи. Затем f.write («Привет») перезаписывает существующее содержимое файла myfile.txt . Он возвращает количество символов, записанных в файл, которое в приведенном выше примере равно 5. В конце концов, f.close () закрывает файловый объект.

    Добавление к существующему файлу

    Следующий код добавляет содержимое в конец существующего файла, передавая 'a' или 'a +' режим в методе open () .

      >>> f = open ('C: \ myfile.txt', 'a')
    >>> f.write («Мир!»)
    7
    >>> f.close ()
    
    # чтение файла
    >>> f = open ('C: \ myfile.txt', 'r')
    >>> е.читать()
    'Привет, мир!'
    >>> f.close ()
      

    Запись нескольких строк

    Python предоставляет метод writelines () для сохранения содержимого объекта списка в файл. Поскольку символ новой строки не записывается в файл автоматически, он должен быть указан как часть строки.

      >>> lines = ["Hello world. \ N", "Добро пожаловать в TutorialsTeacher.\ n "]
    >>> f = open ("D: \ myfile.txt", "w")
    >>> f.writelines (строки)
    >>> f.close ()
      

    Открытие файла в режиме «w» или «a» может быть только записано, но не может быть прочитано. Точно так же режим «r» позволяет только чтение, но не запись. Для одновременного выполнения операций чтения / добавления используйте режим «a +».

    Запись в двоичный файл

    Функция open () по умолчанию открывает файл в текстовом формате.Чтобы открыть файл в двоичном формате, добавьте 'b' к параметру режима. Следовательно, режим «rb», открывает файл в двоичном формате для чтения, а режим «wb» открывает файл в двоичном формате для записи. В отличие от текстовых файлов, двоичные файлы не читаются человеком. При открытии с помощью любого текстового редактора данные невозможно распознать.

    Следующий код хранит список чисел в двоичном файле. Перед записью список сначала преобразуется в байтовый массив.Встроенная функция bytearray () возвращает байтовое представление объекта.

      f = open ("binfile.bin", "wb")
    число = [5, 10, 15, 20, 25]
    arr = bytearray (число)
    f.write (обр.)
    f.close ()
      

    Python записать строку в файл

    В этом руководстве по Python мы обсудим , как записать строку в файл в Python с примерами. Здесь мы проверим

    • Python записать строку в файл
    • Python записать строку в файл с новой строкой
    • Python записать строку в файл перезаписать
    • Python записать строку в файл без новой строки
    • Python записать строку в файл добавить
    • Python написать строка в файл csv
    • Python записывает одну строку в файл csv
    • Python записывает в файл для цикла
    • Python записывает двоичную строку в файл
    • Python записывает в файл объединить строку
    • Python записывает строку в файл как utf- 8
    • Python записывает строку в файлы csv без кавычек

    Python записывает строку в файл

    Теперь давайте посмотрим , как записать строку в файл в Python .

    В этом примере я взял textfile = open («filename.txt, mode) , чтобы открыть файл, и режим« w »для записи файла, в файлах есть и другие режимы, например:

    • r - режим чтения.
    • a - режим добавления.
    • w - режим записи.
    • r + - режим чтения и записи.
    • Здесь a = textfile.write («строка») используется для записи строки в новый созданный файл. Я взял имя файла в качестве примера «».txt » текстовый файл. close () используется для закрытия файла.

    Пример:

      textfile = open ("example.txt", "w")
    a = textfile.write ('pythonguides')
    textfile.close ()  

    На изображениях ниже показан результат, в котором мы видим строку в файле

    Python записывает строку в файл

    Вам может понравиться Нарисовать цветные закрашенные фигуры с помощью Python Turtle и игру «Как создать змею на Python с помощью Turtle».

    Python записывает строку в файл с новой строкой

    Теперь мы увидим в Python, , как записать строку в файл с символом новой строки «\ n» .

    В этом примере я использовал open («filename.txt, mode) , чтобы открыть файл. Затем вызовите file.write (‘string \ n’) , чтобы записать строку во вновь созданный файл.

    И затем используйте «\ n », это дает разрыв строки в выводе, и средство вывода перейдет к следующей строке, а затем я использовал file.close () , чтобы закрыть файл.

    Пример;

      file = open ("example.txt", "w")
    file.write ('Привет всем! \ nДобро пожаловать в pythonguides')
    файл.закрыть  

    На изображениях ниже показан результат:

    Python записывает строку в файл с новой строкой

    Здесь мы видим, что две строки находятся в разных строках.

    Python записать строку в файл перезаписать

    Здесь мы видим , как перезаписать строку в файле в Python .

    В этом примере я использовал file = open («file.txt», mode) , чтобы открыть файл.

    Затем я взял строковую переменную как fruit = («манго желтое»).

    Затем использовал file.writelines (fruit) , чтобы записать последовательность строки в файл, и file.close () , чтобы закрыть файл.

    Пример:

      file = open ("example.txt", "w")
    fruit = ("манго желтое")
    file.writelines (фрукты)
    file.close ()
    
     
      

    Пример ниже показывает результат:

    Строка записи Python в файл перезаписывается

    В этом примере я использовал режим «w » для записи новой строки в файл, который уже открыт

    Пример:

      файл = открытый ("пример.txt "," w ")
    file.write ("овощи \ п")
    file.close ()  

    Пример ниже показывает результат:

    Строка записи Python в файл перезаписывается

    В этом примере я использовал метод file.read () для перезаписи строки и file.close () , чтобы закрыть файл.

    Пример:

      file = open ("example.txt", "r")
    print («Вывод строк чтения после записи»)
    печать (file.read ())
    Распечатать()
    file.close ()  

    Пример ниже показывает результат:

    Строка записи Python в файл перезаписывается

    Это последний код для перезаписи строки.

      file = open ("example.txt", "w")
    fruit = ("манго желтое")
    file.writelines (фрукты)
    file.close ()
    
    file = open ("example.txt", "w")
    file.write ("овощи \ п")
    file.close ()
    
    file = open ("example.txt", "r")
    print («Вывод строк чтения после записи»)
    печать (file.read ())
    Распечатать()
    file.close ()  

    Python записывает строку в файл, добавляемый

    Теперь давайте посмотрим , как добавить строку в файл в Python .

    добавить означает добавить что-то в конец письменного документа (существующего документа).

    В этом примере добавляется «и зеленый» , который добавляется к существующей строке и дает окончательную строку.

    Для добавления используется режим «a» ( file = open («example.txt», «a») ), file.read () используется для чтения добавленной строки.

    Пример:

      file = open ("example.txt", "w")
    fruit = ("манго желтые")
    file.writelines (фрукты)
    file.close ()
       
    file = open ("example.txt", "a")
    file.write ("и зеленый \ n")
    файл.близко()
       
    file = open ("example.txt", "r")
    print ("Вывод строк чтения после добавления")
    печать (file.read ())
    Распечатать()
    file.close ()  

    На изображении ниже показан результат:

    Python записывает строку в файл, добавляемый

    Python записывает строку в файл без новой строки

    Теперь мы можем увидеть , как записать строку в файл без новой строки в Python .

    В этом примере я использовал «\ r» вместо «\ n»

      file = open ("привет.txt "," w ")
    file.write ('Привет всем' "\ r")
    file.write ('добро пожаловать в pythonguides')
    file.close  

    На изображении ниже показан результат:

    Python записывает строку в файл без новой строки

    Python записать строку в файл csv

    Давайте посмотрим , как записать строку в файл csv в Python .

    Файл

    CSV представляет собой файл значений , разделенных запятыми. . Это простой формат файла, в котором хранятся данные в табличной форме. например, лист Excel, база данных. В CSV-файле должно быть .csv расширение.

    Пример:

    В этом примере я взял список строк в качестве фруктов:

      фрукты = [яблоко, вишня, апельсин, ананас, клубника]  

    Затем я использовал open («filename.csv, mode) , чтобы открыть файл. dialect = ’excel’ используется для определения формата Excel, он содержит группу параметров. writerow (item) - это метод записи строки данных в указанный файл.

    Пример:

      импорт CSV
    
    fruit = ('яблоко', 'вишня', 'апельсин', 'ананас', 'клубника')
    
    Fruitfile = open ("фрукты.csv ", 'ш')
    wr = csv.writer (фруктовый файл, диалект = 'excel')
    для товара во фруктах:
    wr.writerow (товар)  

    На изображении ниже показан результат:

    Строка записи Python в файл csv

    В этом выводе мы видим, что все строки разделены запятыми.

    Python записывает одну строку в файл csv

    Здесь мы можем увидеть, как получить singlerow в файле csv. В этом примере я импортировал модуль csv file = open («filename.csv», mode) csv.writer () Метод используется для создания объекта записи writerow (item) fuction используется для записи одной строки в файле csv.

    Пример:

      импорт CSV
    file = open ("dict.csv", "w")
    Writer = csv.writer (файл)
    Writer.writerow (["ручка", "карандаш"])
    file.close ()  

    На изображении ниже показан результат:

    Python записывает одну строку в файл csv

    Python записать в файл для цикла

    Здесь мы видим , как написать файл для цикла в Python .

    Цикл for используется для итерации по последовательности, мы также можем использовать функцию диапазона () .Функция диапазона возвращает последовательность чисел, начинающуюся с 0, по умолчанию с шагом 1.

      file = open ("example.txt", "w")
    file.write ("руководства по питону")
    a = "руководства по питону"
    для x в:
    печать (а)
    file.close ()  

    На изображении ниже показан результат:

    Python записывает в файл для цикла

    Python записывает двоичную строку в файл

    Теперь давайте посмотрим, как преобразовать двоичную строку в файл.

    В этом примере я использовал file = open (filename.txt, mode) , чтобы открыть файл, и использовал режим « w + b» , который используется для записи файла в двоичном формате .

    Назначена двоичная строка = ”01100011 01100011 01100001 ″ и двоичные значения = binarystring.split () для разделения строки на пробелы.

    an_integer = int (binaryvalue, 2) используется для преобразования десятичного целого числа base2 .

    ascii_character = chr (an_integer) и используется для преобразования в символ ASCII ascii_string + = ascii_character, который используется для добавления символа в строку print (ascii_string) используется для печати строки, файла .close () , чтобы закрыть файл.

    Пример:

      файл = открыть ('binary.txt', 'w + b')
    
    binarystring = "01100011 01100011 01100001"
    
    binaryvalues ​​= binarystring.split ()
    
    ascii_string = ""
    
    для двоичного значения в двоичных значениях:
        an_integer = int (двоичное значение, 2)
    
        ascii_char = chr (an_integer)
    
        ascii_string + = ascii_char
    печать (ascii_string)
    file.close ()  

    На изображении ниже показан результат, в котором вы можете увидеть преобразованную строку.

    Python записывает двоичную строку в файл

    Python записывает в файл строку конкатенации

    Здесь мы видим , как написать файл для объединения строки в Python.конкатенация означает соединение двух цепочек символов сквозное , например, конкатенация «фут» и «мяч» составляет «футбол»

    Пример:

      файл = открытый ('o.txt', 'w')
    str1 = "фут"
    str2 = "мяч"
    print ("". join ([str1, str2]))
    str3 = "" .join ([str1, str2])
    file.write (str3)
    file.close ()
      

    В этом примере я взял file = open (‘filename.txt’ ‘mode’) , чтобы открыть файл, и взял две строки как str1 = "foot" и str2 = "ball", print ("".join ([str1, str2])) используется для соединения двух строк .str3 = ”“ .join ([str1, str2]) для соединения строки с пробелом разделителя, для записи объединенной строки в файл file .write (str3) используется, file.close () t o закрыть файл.

    На изображении ниже показан результат:

    Запись Python в строку конкатенации файла

    Python записывает строку в файл как utf-8

    utf-8- Формат преобразования Unicode , это система кодирования для Unicode, обычно используемая для кодирования электронной почты и веб-страниц.

    Здесь мы видим , как записать строку в файл в формате utf-8 в python.

    Пример:

      файл = открыть ('q.txt', 'w + b')
    utf8 = "Python, проводники!". encode ()
    печать (utf8)
    b = utf8.decode ()
    печать (utf8.decode ())
    str (b'abc ',' utf-8 ')
    file.write (utf8)
    arr = байты (b, 'utf-8')
    file.write (обр)
    file.close ()  

    В этом примере я использовал file = open (‘q.txt’, ’mode), чтобы открыть файл, ‘ w + b ’ режим используется для записи только в двоичном формате.

    utf8 = «python, проводники!». Encode () , вызовите string.encode () для кодирования строки в байты utf-8 и затем вызовите bytes.decode () для декодирования utf-8 закодированные байты для Unicode строки.

    file.write (utf8) для записи закодированного значения в файл. Для преобразования строки в байт str (b'abc ',' utf-8 ') используется и для преобразования байта в строку arr = bytes ( b, 'utf-8') и file.write (arr) для записи декодированного значения в файл и, наконец, файл.close () , чтобы закрыть файл.

    Изображение ниже показывает как закодированное, так и декодированное значение.

    Python записывает строку в файл как utf-8

    На изображении ниже показан результат:

    Python записывает строку в файл как utf-8

    Python записывает строку в файлы csv без кавычек

    Теперь мы можем увидеть , как написать файл csv без кавычек в python.

    В этом примере я импортировал модуль CSV и для открытия файла использовал f = open («filename.csv», «mode») и csv.Writer () используется для вставки данных в файл CSV , поскольку нам требуется записать строку в файл CSV без кавычек, поэтому я использовал QUOTE_NONE , чтобы получить файл без кавычек.

    Для записи всех элементов в строки используется writer.writerow () .

    Пример:

      импорт CSV
    f = open ("fruit.csv", "w")
    писатель = csv.writer (f, цитата = csv.QUOTE_NONE)
    Writer.writerows ([["манго", 1], ["апельсин", 2]])
    f.close ()  

    На изображении ниже показан результат:

    Python записывает строку в файлы csv без кавычек

    Вам могут понравиться следующие уроки Python:

    В этом руководстве мы узнали о , как записать строку в файл , и рассмотрели следующие темы:

    • Python записать строку в файл
    • Python записать строку в файл с новой строкой
    • Python записать строку в файл перезаписать
    • Python записать строку в файл без новой строки
    • Python записать строку в файл добавить
    • Python написать строка в файл csv
    • Python записывает одну строку в файл csv
    • Python записывает в файл для цикла
    • Python записывает в файл объединить строку
    • Python записывает строку в файл как utf-8
    • Python записывает строку в файлы csv без кавычек

    Чтение и запись файлов с помощью Python

    Файлы используются для хранения и организации данных на диске.Мы часто используем файлы, когда нам нужно постоянно хранить данные на жестком диске. Например, предположим, что мы создаем программную систему, которая ведет записи об учащихся. Теперь нам нужно постоянно хранить данные о студентах для использования в будущем. Для этого мы можем использовать файлы для хранения данных, а позже мы можем открыть эти файлы и получить доступ к сохраненным данным в любое время.

    Чтение и запись файлов - очень распространенные функции в Python. На Python легко создавать, читать и редактировать файлы. Python имеет встроенные функции для чтения и записи файлов.Вы можете открывать, записывать и читать файлы с помощью встроенных функций Python. Файловые операции выполняются в следующей последовательности:

    • Открыть файл
    • Файл чтения / записи
    • Закрыть файл

    Используя Python, вы можете создавать текстовые файлы и двоичные файлы. Текстовые файлы хранят данные в виде символов, и каждая строка заканчивается символом новой строки (‘\ n’). В двоичных файлах данные хранятся в виде байтов (1 и 0).

    Из этой статьи вы узнаете:

    • Некоторые из различных файловых режимов в Python
    • Как открыть файл
    • Как создать файл
    • Как записать данные в файл
    • Как читать файл

    Различные режимы файлов в Python

    Modes в Python описывают тип операции, выполняемой с файлом.При открытии файла необходимо указать режим. У каждого файла есть дескриптор файла. Дескриптор файла действует как курсор, указывающий, где записывать и читать данные. Это тип указателя местоположения. Ниже приведены некоторые из различных режимов доступа к файлам в Python:

    Режим Описание
    р Открывает файл в режиме чтения. Этот режим выбран по умолчанию, если вы не определяете какой-либо режим при открытии файла в Python.
    w Записывает файл. Этот режим создает файл, если файл еще не существует, и перезаписывает данные в файле.
    г + Используется для чтения и записи файла. Он показывает ошибку, если файл не существует.
    Открывает файл в режиме добавления. Дескриптор файла находится в конце файла. Этот режим не перезаписывает существующие данные, а начинает запись данных в конце файла.Если файл не существует, создается новый файл.
    а + Открывает файл для чтения и записи. Это открывает файл в режиме добавления для записи. Данные вставляются в конец файла. Если файл не существует, создается новый файл.
    т Открывает файл в текстовом режиме.

    Как открыть файл

    Чтобы открыть файл в Python, используйте встроенную функцию open () . Функция open () принимает в качестве входных данных два аргумента, т.е.е., имя файла и режим работы. Эта функция возвращает файловый объект в качестве вывода. Для использования функции open () нет необходимости импортировать какой-либо модуль. Ниже приводится синтаксис функции open ():

    file_object = open («имя_файла», «режим»)

    Здесь «имя_файла» представляет имя фактического текстового файла, а «режим» представляет доступ к файлу или режим работы с файлом. Вы также можете поместить r перед «file_name», если имя файла включает специальные символы.Буква r размещается следующим образом:

    = объект_файла = открытый (r «имя_файла», «режим»)

    Например, имя файла может быть: «F: \ newfolder \ myfile.txt»

    Как создать файл

    Функцию open () можно использовать для создания файлов в Python. Используйте режим добавления (a) внутри функции open () для создания файла. Создайте файл, используя приведенный ниже код:

    файл = open ("sample.txt", "a")

    Здесь создается новый файловый объект. Файловый объект называется «файл.»Имя вновь созданного текстового файла -« sample.txt ». Текстовый файл открывается в режиме добавления. Он создаст новый файл, если файл еще не существует. После создания файла необходимо закрыть файл следующим образом:

    Встроенная функция close () используется для закрытия файла.

    Как записать данные в файл

    В Python есть две функции, используемые для записи данных в файл:

    1. написать ()
    2. телефонных линий ()

    Функция write () используется для записи однострочных или однострочных данных в файл, а функция Writelines () используется для записи нескольких строк данных в текстовый файл.Давайте посмотрим на несколько примеров записи данных в файл.

    Использование функции write ()

    В этом примере мы используем функцию write () для записи данных в файл. Файл открывается в режиме записи. «\ N» указывает конец строки.

    # создание нового файлового объекта и открытие файла в режиме записи
    file = open ("sample.txt", "w")
    # запись одной строки в файл

    file.write ("Добро пожаловать в linuxhint \ n")
    # запись еще одной строчки в файл
    file.write ("С возвращением")

    # закрытие файла
    file.close ()

    Выход

    Строки записаны в текстовые файлы.

    Если мы откроем файл в режиме записи и попросим функцию write () записать больше строк в файл, она перезапишет предыдущие данные, и новые данные будут добавлены в текстовый файл.

    # создание нового файлового объекта и открытие файла в режиме записи
    file = open ("sample.txt", "w")
    # запись одной строки в файл

    file.write ("Всем привет \ n")
    # запись еще одной строки в файл
    file.write ("Это замененная строка")

    # закрытие файла
    file.close ()

    Выход

    В выводе видно, что предыдущие данные заменяются, а новые данные добавляются вместо них в текстовый файл.

    Если мы хотим сохранить в файле как предыдущие, так и новые данные, то мы можем открыть файл в режиме добавления, например:

    # создание нового файлового объекта и открытие файла в режиме добавления
    file = open ("sample.txt "," a ")
    # запись одной строки в файл

    file.write (" Привет всем \ n ")
    # запись еще одной строки в файл
    file.write (" Это замененная строка \ n " )
    # запись еще одной новой строки в файл
    file.write ("Это новая добавленная строковая строка \ n")
    # закрытие файла
    file.close ()

    Выход

    Использование функции Writelines ()

    Функция Writelines () используется для записи нескольких строк текста одновременно, как показано ниже:

    # создание нового файлового объекта и открытие файла в режиме записи
    file = open ("file1.txt "," w ")
    # сохранение нескольких строковых данных в переменной
    str = [" Всем привет \ n "," Добро пожаловать в linuxhint \ n "," мы используем функцию Writelines \ n "]
    # using Writelines функции для записи данных в файл
    file.writelines (str)
    # закрытие файла
    file.close ()

    Выход

    Как читать файл

    Чтобы прочитать файл в Python, сначала откройте файл в режиме чтения. В Python есть три встроенные функции для чтения файла.К ним относятся следующие:

    1. читать ()
    2. строка чтения ()
    3. строк чтения ()

    read (): Используется для чтения данных из файла; возвращает все данные в виде строки.

    readline (): Считывает строку данных из файла; возвращает только первую строку.

    readlines (): Читает все существующие строки из файла; возвращает его в виде списка.

    Функция seek () используется для изменения положения дескриптора файла.При чтении данных в файле дескриптор файла позиционируется в конце файла. Таким образом, дескриптор файла подобен курсору, а функция seek () служит средством перемещения курсора.

    Рассмотрим пример чтения данных из файла.

    # открытие файла в режиме чтения
    file = open ("file1.txt", "r")
    # использование функции read () для чтения данных из файла
    # сохранение строк в переменной
    data = file.read ()
    # печать данных
    print ("Это результат работы функции read (): \ n")
    print (data)

    # использование функции seek () для вывода позиции файла в начало
    файл.seek (0)
    # использование функции readline () для чтения данных из файла
    # сохранение строк в переменной
    data = file.readline ()
    # печать данных
    print ("Это результат readline ( ) function: \ n ")
    print (data)

    # использование функции seek () для вывода позиции файла в начало
    file.seek (0)
    # использование функции readlines () для чтения данных из файла
    # сохранение строк в переменной
    data = file.readlines ()
    # печать данных
    print ("Это результат работы функции readlines (): \ n")
    print (data)
    # закрытие файла
    file.закрыть ()

    Выход

    Заключение

    Часто бывает необходимо сохранить информацию или данные в файле. В Python вы можете легко создавать, записывать и читать файлы, используя встроенные функции Python.

    Оставить комментарий

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *