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

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

fp.write(string):
Метод записывает в файл строку. «Строка» может быть сколь угодно большой и уже заранее разделена на подстроки escape-последовательностью новой строки '\n'. То есть этот метод позволяет писать в файл как построчно, так и все сразу.

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

Запишем список строк в объект файла, при этом в процессе записи будем на лету добавлять символ новой строки '\n' к каждому элементу списка строк.

>>> text = ['Строка №1', 'Строка №2', 'Строка №3', 'Строка №4', 'Строка №5']
# открываем файл на запись
>>> with open('text.txt', 'w') as fp:
...    # пишем построчно
...    for line in text:
...           # на лету добавляем 
...           # символ новой строки
.
.. fp.write(line + '\n')

Теперь запишем все сразу, для этого подготовим список строк, объединив список в строку при помощи метода строки str.join(), а в качестве разделителя строки укажем символ новой строки '\n'.

>>> text = ['Строка №1', 'Строка №2', 'Строка №3', 'Строка №4', 'Строка №5']
# объединим список строк в одну строку, в качестве символа
# разделителя используем символ новой строки `'\n'`
>>> write_string = '\n'.join(text)
# открываем файл на запись
>>> with open('text.txt', 'w') as fp:
...    # пишем в файл
...    fp.write(write_string)

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


fp.writelines(sequence):

Метод записывает в файл последовательность, которая в качестве элементов содержит строки. Метод не добавляет автоматически разделители строк '\n'. Если они требуются, то добавляйте их вручную.

Этот метод предоставляется для удобства, что бы во время записи в файл не итерироваться по списку строк, как показано в первом примере для метода записи в файл file.write() (смотрите выше).

Смотрим как работает метод:

# пишем как есть
>>> text = ['Строка №1', 'Строка №2', 'Строка №3', 'Строка №4', 'Строка №5']
# откроем файл на запись `fw` и сразу на чтение `fr`
>>> with open('text.txt', 'w') as fw, open('text.txt', 'r') as fr:
...     # сначала пишем в файл
...     fw.writelines(text)
...     fw.flush()
...     for line in fr:
...         print(line, end='')
... 
# 'Строка №1Строка №2Строка №3Строка №4Строка №5'

Теперь добавляем разделители строк '\n' к списку строк, а потом запишем его в файл и сразу же прочитаем, что бы увидеть что получилось.

# Добавляем разделители строк
>>> text = ['Строка №1', 'Строка №2', 'Строка №3', 'Строка №4', 'Строка №5']
# создадим новый список
>>> write_list = []
>>> for line in text:
.
.. # в конец каждого элемента списка ... # добавим символ новой строки `'\n'` ... write_list.append(line + '\n') # откроем файл на запись `fw` и сразу на чтение `fr` >>> with open('text.txt', 'w') as fw, open('text.txt', 'r') as fr: ... # сначала пишем в файл полученный список `write_list` ... fw.writelines(write_list) ... # сбрасываем буфер ... fw.flush() ... # теперь читаем записанный файл ... for line in fr: ... print(line, end='') ... # Строка №1 # Строка №2 # Строка №3 # Строка №4 # Строка №5

VBA Excel. Операторы чтения и записи в файл

Чтение и запись в файл, открытый с помощью оператора Open. Операторы Input, Line Input, Write и функция EOF. Примеры использования в VBA Excel.

Операторы чтения и записи в файл

Оператор Input #

Оператор Input # считывает данные из открытого файла с последовательным доступом и присваивает эти данные переменным.

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

Синтаксис оператора Input #:

Input #Номер_файла, Переменные

Компоненты оператора Input #:

  • Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
  • Переменные – обязательный параметр, представляющий из себя список переменных, разделенных запятой, которым присваиваются значения, считанные из файла.

Особенности применения оператора Input #:

  • Элементы данных в файле должны быть указаны в том же порядке, что и переменные в списке Переменные, и соответствовать им по типу данных. Если переменная числовая, а данные текстовые, этой переменной будет присвоено нулевое значение.
  • Если при чтении данных достигнут конец файла, чтение прерывается и возникает ошибка. Для ее предупреждения в коде VBA Excel используется функция EOF.
  • Чтобы данные из файла могли быть правильно прочитаны и записаны в переменные с помощью оператора Input #, они должны быть записаны в файл с помощью оператора Write #. Он обеспечивает правильное разделение каждого из полей (элементов) данных.

Оператор Line Input #

Оператор Line Input # считывает одну строку из открытого файла с последовательным доступом и присваивает ее значение строковой переменной.

Оператор Line Input # считывает из файла по одному символу до тех пор, пока не встретится символ возврата каретки (Chr(13)) или последовательность символа возврата каретки и перевода строки (Chr (13) + Chr(10)).

Синтаксис оператора Line Input #:

Line Input #Номер_файла, Переменная

Компоненты оператора Line Input #:

  • Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
  • Переменная – обязательный параметр, представляющий из себя имя переменной, объявленной как String или Variant, которой присваивается строка, считанная из файла.

Оператор Write #

Оператор Write # записывает данные в файл с последовательным доступом.

Синтаксис оператора Write #:

Write #Номер_файла, [Данные]

Компоненты оператора Write #:

  • Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
  • Данные – необязательный параметр, представляющий из себя одно или несколько числовых или строковых выражений, разделенных запятой, которые нужно записать в файл.

Особенности применения оператора Write #:

  • Данные, записанные с помощью оператора Write #, считываются из файла с помощью оператора Input #.
  • Если опустить параметр Данные и добавить запятую после Номер_файла, в файл будет добавлена пустая строка.
  • Несколько выражений в списке Данные могут быть разделены точкой с запятой или запятой.
  • Числовые данные всегда записываются с точкой в качестве разделителя целой и дробной части.
  • Оператор Write # вставляет запятые между элементами и прямые парные кавычки вокруг строк при их записи в файл.
  • После записи в файл последнего символа из параметра Данные оператор Write # вставляет символы возврата каретки и перевода строки (Chr (13) + Chr(10)).

Функция EOF

Функция EOF возвращает логическое значение True, когда достигнут конец файла, открытого для последовательного (Input) или произвольного (Random) доступа.

Синтаксис функции EOF:

EOF (Номер_файла)

Номер_файла – это номер, присвоенный файлу при открытии с помощью оператора Open.

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

Примеры чтения и записи в файл

Пример 1
Открытие (или создание, если он не существует) текстового файла для чтения и записи и запись в него одной строки, состоящей из двух текстовых и одного числового значений. Файл с именем

myFile1.txt будет создан в той же папке, где расположен файл Excel с кодом VBA.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Sub Test1()

Dim ff As Integer

‘Получаем свободный номер для открываемого файла

ff = FreeFile

‘Открываем (или создаем) файл для чтения и записи

Open ThisWorkbook.Path & «\myFile1.txt» For Output As ff

‘Записываем в файл одну строку

Write #ff, «Дает корова молоко!», _

«Куда идет король?», 25. 35847

‘Закрываем файл

Close ff

‘Открываем файл для просмотра

ThisWorkbook.FollowHyperlink (ThisWorkbook.Path & «\myFile1.txt»)

End Sub

Строки и число можно предварительно присвоить переменным, объявленным с соответствующими типами данных, и использовать их для записи данных в файл (в строках кода с оператором Write #, как в этом и следующем примерах).

Пример 2
Открытие (или создание, если он не существует) файла без расширения для чтения и записи и запись в него трех строк: двух текстовых и одной в числовом формате. Файл с именем myFile2 будет создан в той же папке, где расположен файл Excel с кодом VBA.

Так как у файла нет расширения, Windows выведет диалоговое окно для выбора открывающей его программы. Выберите любой текстовый редактор или интернет-браузер.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Sub Test2()

Dim ff As Integer

‘Получаем свободный номер для открываемого файла

ff = FreeFile

‘Открываем (или создаем) файл для чтения и записи

Open ThisWorkbook. Path & «\myFile2» For Output As ff

‘Записываем в файл три строки

Write #ff, «Дает корова молоко!»

Write #ff, «Куда идет король?»

Write #ff, 25.35847

‘Закрываем файл

Close ff

‘Открываем файл для просмотра

ThisWorkbook.FollowHyperlink (ThisWorkbook.Path & «\myFile2»)

End Sub

Пример 3
Считываем строку, разделенную на отдельные элементы, из файла myFile1.txt и записываем в три переменные, по типу данных соответствующие элементам.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Sub Test3()

Dim ff As Integer, str1 As String, _

str2 As String, num1 As Single

‘Получаем свободный номер для открываемого файла

ff = FreeFile

‘Открываем файл myFile1.txt для чтения

Open ThisWorkbook.Path & «\myFile1. txt» For Input As ff

‘Считываем строку из файла и записываем в переменные

Input #ff, str1, str2, num1

Close ff

‘Смотрим, что записалось в переменные

MsgBox «str1 = » & str1 & vbNewLine _

& «str2 = » & str2 & vbNewLine _

& «num1 = » & num1

End Sub

Попробуйте заменить в этом примере строку Input #ff, str1, str2, num1 сначала на строку Input #ff, str1, затем на строку Line Input #ff, str1, чтобы наглядно увидеть разницу между операторами Input # и Line Input #.

В следующих примерах (4 и 5) замена оператора Input # на Line Input # не приведет ни к каким изменениям, так как данные в строках файла myFile2 не разделены на элементы (поля).

Пример 4
Считываем поочередно три строки из файла myFile2 и записываем в три элемента массива, объявленного как Variant, так как в этот файл ранее были записаны две строки с текстом и одна с числом.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Sub Test4()

Dim ff As Integer, a(2) As Variant, i As Byte

‘Получаем свободный номер для открываемого файла

ff = FreeFile

‘Открываем файл myFile2 для чтения

Open ThisWorkbook.Path & «\myFile2» For Input As ff

‘Считываем строки из файла и записываем в элементы массива

   For i = 0 To 2

      Input #ff, a(i)

   Next

Close ff

‘Смотрим, что записалось в элементы массива

MsgBox «a(0) = » & a(0) & vbNewLine _

& «a(1) = » & a(1) & vbNewLine _

& «a(2) = » & a(2)

End Sub

Пример 5
Считываем с помощью цикла Do While… Loop все строки из файла myFile2 и записываем построчно в переменную, объявленную как String (число из третьей строки запишется как текст). Для остановки цикла при достижении конца файла используем функцию EOF.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Sub Test5()

Dim ff As Integer, a As Variant, b As String

‘Получаем свободный номер для открываемого файла

ff = FreeFile

‘Открываем файл myFile2 для чтения

Open ThisWorkbook.Path & «\myFile2» For Input As ff

‘Считываем строки из файла и записываем в элементы массива

   Do While Not EOF(ff)

      Input #ff, a

      b = b & a & vbNewLine

   Loop

Close ff

‘Смотрим, что записалось в переменную

MsgBox b

End Sub


Предыдущая часть темы об открытии файла для ввода и вывода информации опубликована в статье: Оператор Open (синтаксис, параметры). Смотрите также связанную статью: Функция FreeFile.

Смотрите, как создавать и открывать текстовые файлы с помощью методов CreateTextFile и OpenTextFile. Чтение файла, запись и добавление информации с помощью объекта TextStream.


Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

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

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

TL;DR

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

 с помощью open('readme.txt', 'w') as f:
    f.write('readme')  Язык кода: JavaScript (javascript)  

Действия для записи в текстовые файлы

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

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

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

 f = open(file, mode) 

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

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

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

Режим Описание
'w ' Открыть текстовый файл для записи. Если файл существует, функция удалит все содержимое, как только вы его откроете. Если файл не существует, функция создает новый файл.
'a' Открытие текстового файла для добавления текста. Если файл существует, функция добавляет содержимое в конец файла.
‘+’ Открыть текстовый файл для обновления (чтение и запись).

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

  • запись() 9Метод 0021 записывает строку в текстовый файл.
  • Метод writelines() сразу записывает список строк в файл.

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

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

 f.write('\n')
f.writelines('\n')  Язык кода: JavaScript (javascript)  

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

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

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

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

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

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

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

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

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

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

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

Вывод:

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

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

 UnicodeEncodeError: кодек 'charmap' не может кодировать символы в позиции 0-44: символ сопоставляется с   Кодовый язык: HTML, XML (xml)  

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

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

quote = '成功を収める人とは人が投げてきたレンガでしっかりした基盤を築くことができる人のことである。'
с open('quotes.txt', 'w', encoding='utf-8') как f:
    f.написать(цитировать)
  Язык кода: JavaScript (javascript)  

Сводка

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

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

Как создать (записать) текстовый файл в Python

АвторSteve Campbell

Часов

Обновлено

Обработка файлов Python

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

Как открыть текстовый файл в Python

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

Синтаксис функции открытия файла Python

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

Здесь

  • имя файла: дает имя файла, который открыл файловый объект.
  • режим: атрибут файлового объекта сообщает вам, в каком режиме был открыт файл.

Более подробная информация об этих режимах описана ниже.

Как создать текстовый файл в Python

При записи в файл Python вы можете создавать текстовые файлы (guru99. txt), используя код, который мы продемонстрировали здесь:

Шаг 1) Откройте файл .txt

 f= open("guru99.txt","w+") 
  • Мы объявили переменную «f», чтобы открыть файл с именем guru99.текст. Open принимает 2 аргумента: файл, который мы хотим открыть, и строку, представляющую виды разрешений или операций, которые мы хотим выполнить с файлом
  • .
  • Здесь мы использовали букву «w» в нашем аргументе, которая указывает Python на запись в файл, и он создаст файл в Python, если он не существует в библиотеке
  • Знак плюс указывает на чтение и запись для операции создания файла Python.

Шаг 2) Введите данные в файл

 для i в диапазоне (10):
     f.write("Это строка %d\r\n" % (i+1)) 
  • У нас есть цикл for, который работает с диапазоном из 10 чисел.
  • Использование функции записи для ввода данных в файл.
  • Вывод, который мы хотим повторить в файле, это «это номер строки», который мы объявляем с помощью функции записи файла Python, а затем процент d (отображает целое число)
  • Итак, в основном мы вводим номер строки, которую пишем, затем помещаем его в возврат каретки и символ новой строки
  • .

Шаг 3) Закройте экземпляр файла

 f.close() 
  • Это закроет экземпляр файла guru99.txt, сохраненный

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

Как создать текстовый файл в Python

При нажатии на ваш текстовый файл в нашем случае «guru99.txt» он будет выглядеть примерно так

Пример создания текстового файла в Python


Как добавить текстовый файл в Python

Вы также можете добавлять/добавлять новый текст к уже существующему файлу или новому файлу.

Шаг 1)

 f=open("guru99.txt", "a+") 

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

Шаг 2)

 для i в диапазоне(2):
     f. write("Добавленная строка %d\r\n" % (i+1)) 

Это запишет данные в файл в режиме добавления.

Как добавить текстовый файл в Python

Результат можно увидеть в файле «guru99.txt». Вывод кода заключается в том, что к предыдущему файлу добавляются новые данные с помощью операции добавления Python в файл.

Пример добавления текстового файла в Python

Как читать файлы в Python

Вы можете прочитать файл в Python, вызвав файл .txt в «режиме чтения»(r).

Шаг 1) Открытие файла в режиме чтения

 f=open("guru99.txt", "r") 

Шаг 2) Мы используем функцию режима в коде, чтобы проверить, находится ли файл в открытый режим. Если да, продолжаем

 if f.mode == 'r': 

Шаг 3) Используйте f.read для чтения данных файла и сохранения их в переменном содержимом для чтения файлов в Python

contents =f. read() 

Шаг 4) Распечатать содержимое текстового файла чтения Python

Вот вывод прочитанного файла примера Python:

Как читать файлы в Python


Как читать файл построчно в Python

Вы также можете читать файл . txt построчно, если ваши данные слишком велики для чтения. Код readlines() разделит ваши данные в удобном для чтения режиме.

Как прочитать файл построчно в Python

Когда вы запускаете код ( f1=f.readlines()) для чтения файла построчно в Python, он разделяет каждую строку и представляет файл в читаемом формате. В нашем случае строка короткая и читабельная, вывод будет похож на режим чтения. Но если есть сложный файл данных, который не читается, этот фрагмент кода может быть полезен.

Режимы файлов в Python

Ниже приведены различные режимы файлов в Python :

Режим Описание
«р» Это режим по умолчанию. Открывает файл для чтения.
‘ш’ Этот режим открывает файл для записи.
Если файл не существует, создается новый файл.
Если файл существует, он усекается.
‘х’ Создает новый файл. Если файл уже существует, операция завершается ошибкой.
«а» Открыть файл в режиме добавления.
Если файл не существует, создается новый файл.
«т» Это режим по умолчанию. Он открывается в текстовом режиме.
«б» Это открывается в двоичном режиме.
«+» Это откроет файл для чтения и записи (обновления)

Вот полный код Python print() для примера файла

Python 2 Пример

 def main():
     f= открыть("guru99.txt","w+")
     #f=открыть("guru99.txt","а+")
     для я в диапазоне (10):
         f.write("Это строка %d\r\n" % (i+1))
     е.закрыть()
     #Открываем файл обратно и читаем содержимое
     #f=открыть("guru99.txt", "r")
     # если f.mode == 'r':
     # содержимое =f.read()
     # распечатать содержимое
     #или, readlines считывает отдельную строку в список
     #fl =f.readlines()
     #для x в fl:
     #распечатать х
если __name__== "__main__":
  главная() 

Пример Python 3

Ниже приведен еще один пример Python print() to File:

 def main():
 f= открыть("guru99.