Как создать txt файл в python
Перейти к содержимому

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

  • автор:

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

Чтобы открыть текстовый файл на запись, необходимо применить режим w (перезапись), a (дозапись) или r+ / w+ (чтение и запись) . Затем для записи применяется метод write(str) , в который передается записываемая строка. Стоит отметить, что записывается именно строка, поэтому, если нужно записать числа, данные других типов, то их предварительно нужно конвертировать в строку.

Запишем некоторую информацию в файл «hello.txt»:

with open("hello.txt", "w") as file: file.write("hello world") print("Файл записан")

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

Теперь дозапишем в этот файл еще одну строку:

with open("hello.txt", "a") as file: file.write("\nhello work") print("Файл изменен")

Дозапись выглядит как добавление строки к последнему символу в файле, поэтому, если необходимо сделать запись с новой строки, то можно использовать эскейп-последовательность «\n». В итоге файл hello.txt будет иметь следующее содержимое:

hello world hello work

Для записи списка строк имеется метод writelines() . В качестве параметра он принимает список строк:

lines = ["Hello Word\n", "Hello Work\n", "Hello World\n"] with open("hello2.txt", "a") as file: file.writelines(lines) print("Список строк записан в файл")

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

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

with open("hello.txt", "a") as myfile: print("\nhello metanit.com", file=myfile)

Для вывода данных в файл в метод print в качестве второго параметра передается название файла через параметр file. А первый параметр представляет записываемую в файл строку.

Чтение файла

Для чтения файла он открывается с режимом r (Read), и затем мы можем считать его содержимое различными методами:

  • readline() : считывает одну строку из файла
  • read() : считывает все содержимое файла в одну строку
  • readlines() : считывает все строки файла в список

Например, считаем выше записанный файл построчно:

with open("hello.txt", "r") as file: for line in file: print(line)

Несмотря на то, что мы явно не применяем метод readline() для чтения каждой строки, но в при переборе файла этот метод автоматически вызывается для получения каждой новой строки. Поэтому в цикле вручную нет смысла вызывать метод readline. Консольный вывод:

hello world hello work hello metanit.com

Однако поскольку функция print неявно добавляет к каждой строке перевод строки «\n», а строки в записанном файлетакже разделяются символом перевода строки «\n», то получается, что каждая строка оканчивается двойным «\n». и чтобы исключить излишнего переноса на другую строку в функцию print можно передать значение end=»» .

with open("hello.txt", "r") as file: for line in file: print(line, end="")

Теперь явным образом вызовем метод readline() для чтения отдельных строк:

with open("hello.txt", "r") as file: str1 = file.readline() # считываем первую строку print(str1, end="") str2 = file.readline() # считываем вторую строку print(str2)
hello world hello work

Метод readline можно использовать для построчного считывания файла в цикле while:

with open("hello.txt", "r") as file: line = file.readline() while line: print(line, end="") line = file.readline()

Если файл небольшой, то его можно разом считать с помощью метода read() :

with open("hello.txt", "r") as file: content = file.read() print(content)

И также применим метод readlines() для считывания всего файла в список строк:

with open("hello.txt", "r") as file: contents = file.readlines() str1 = contents[0] str2 = contents[1] print(str1, end="") print(str2)

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

filename = "hello.txt" with open(filename, encoding="utf8") as file: text = file.read()

Чтение и запись

Для открытия файла сразу для чтения и записи применяются флаги:

  • r+ : если файл не найден, то генерируется исключение FileNotFoundError
  • w+ : если файл не существует, то он автоматически создается. Если файл существует, то он перезаписывается

Например, запишем и считаем из файла данные:

with open("hello.txt", "w+") as file: file.write("Hello world\nHello work\n") # сначала записываем данные file.seek(0) # перемещаемся к первому байту в файле content = file.read() # считываем данные print(content)

Перемещение по файлу

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

file.seek(0)

Аналогичным образом мы можем перемещаться по файлу на нужную позицию. Например, считаем данные, начиная с 5-го символа:

with open("hello.txt", "w+") as file: file.write("Hello world\n") # сначала записываем данные file.seek(6) # перемещаемся к шестому байту в файле content = file.read() # считываем данные print(content) # world

Пример работы с файлами

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

# имя файла FILENAME = "messages.txt" # запись строки в файл def write(): message = input("Введите строку: ") with open(FILENAME, "a") as file: file.write(message + "\n") # чтение файла файл def read(): with open(FILENAME, "r") as file: for message in file: print(message, end="") print() # перевод строки для разделения меню и вывода while(True): selection = int(input("1.Запись в файл\t\t2.Чтение файла\t\t3.Выход\nВыберите действие: ")) match selection: case 1: write() case 2: read() case 3: break case _: print("Некорректный ввод") print("Программа завершена")

Пример работы программы:

1.Запись в файл 2.Чтение файла 3.Выход Выберите действие: 1 Введите строку: Hello World 1.Запись в файл 2.Чтение файла 3.Выход Выберите действие: 1 Введите строку: Hello METANIT.COM 1.Запись в файл 2.Чтение файла 3.Выход Выберите действие: 2 Hello World Hello METANIT.COM 1.Запись в файл 2.Чтение файла 3.Выход Выберите действие: 3 Программа завершена

Функция open. Чтение и запись текстовых файлов в Python

Большие объемы данных хранят не в списках или словарях, а в файлах и базах данных. В этом уроке изучим особенности работы с текстовыми файлами в Python. Такие файлы рассматриваются как содержащие символы и строки.

Бывают еще байтовые (бинарные) файлы, которые рассматриваются как потоки байтов. Побайтово считываются, например, файлы изображений. Работа с бинарными файлами несколько сложнее. Нередко их обрабатывают с помощью специальных модулей Python (pickle, struct).

Функция open

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

Обычно используются режимы чтения ( ‘r’ ) и записи ( ‘w’ ). Если файл открыт в режиме чтения, то запись в него невозможна. Можно только считывать данные. Если файл открыт в режиме записи, то в него можно только записывать данные, считывать нельзя.

Если файл открывается в режиме ‘w’ , то все данные, которые в нем были до этого, стираются. Файл становится пустым. Если не надо удалять существующие в файле данные, тогда следует использовать вместо режима записи, режим дозаписи ( ‘a’ ).

Если файл отсутствует, то открытие его в режиме ‘w’ создаст новый файл. Бывают ситуации, когда надо гарантировано создать новый файл, избежав случайной перезаписи данных существующего. В этом случае вместо режима ‘w’ используется режим ‘x’ . В нем всегда создается новый файл для записи. Если указано имя существующего файла, то будет выброшено исключение. Потери данных в уже имеющемся файле не произойдет.

Если при вызове open() второй аргумент не указан, то файл открывается в режиме чтения как текстовый файл. Чтобы открыть файл как байтовый, дополнительно к букве режима чтения/записи добавляется символ ‘b’ . Буква ‘t’ обозначает текстовый файл. Поскольку это тип файла по умолчанию, то обычно ее не указывают.

Нельзя указывать только тип файла, то есть open(«имя_файла», ‘b’) есть ошибка, даже если файл открывается на чтение. Правильно – open(«имя_файла», ‘rb’) . Только текстовые файлы мы можем открыть командой open(«имя_файла») , потому что и ‘r’ и ‘t’ подразумеваются по-умолчанию.

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

Чтение файла

С помощью файлового метода read() можно прочитать файл целиком или только определенное количество байт. Пусть у нас имеется файл data.txt с таким содержимым:

one - 1 - I two - 2 - II three - 3 - III four - 4 - IV five - 5 - V

Откроем его и почитаем:

>>> f1 = open(‘data.txt’) >>> f1.read(10) ‘one — 1 — ‘ >>> f1.read() ‘I\ntwo — 2 — II\nthree — 3 — III\nfour — 4 — IV\nfive — 5 — V\n’ >>> f1.read() » >>> type(f1.read())

Сначала считываются первые десять символов. Последующий вызов read() считывает весь оставшийся текст. После этого объект файлового типа f1 становится пустым.

Заметим, что метод read() возвращает строку, и что конец строки считывается как ‘\n’ .

Для того, чтобы читать файл построчно существует метод readline() :

>>> f1 = open('data.txt') >>> f1.readline() 'one - 1 - I\n' >>> f1.readline() 'two - 2 - II\n' >>> f1.readline() 'three - 3 — III\n'

Метод readlines() считывает сразу все строки и создает список:

>>> f1 = open('data.txt') >>> f1.readlines() ['one - 1 - I\n', 'two - 2 - II\n', 'three - 3 - III\n', 'four - 4 - IV\n', 'five - 5 - V\n']

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

>>> for i in open('data.txt'): . print(i) . one - 1 - I two - 2 - II three - 3 - III four - 4 - IV five - 5 - V >>>

Здесь выводятся лишние пустые строки, потому что функция print() преобразует ‘\n’ в переход на новую строку. К этому добавляет свой переход на новую строку. Создадим список строк файла без ‘\n’ :

>>> nums = [] >>> for i in open('data.txt'): . nums.append(i[:-1]) . >>> nums ['one - 1 - I', 'two - 2 - II', 'three - 3 - III', 'four - 4 - IV', 'five - 5 - V']

Переменной i присваивается очередная строка файла. Мы берем ее срез от начала до последнего символа, не включая его. Следует иметь в виду, что ‘\n’ это один символ, а не два.

Запись в файл

Запись в файл выполняется с помощью методов write() и writelines() . Во второй можно передать структуру данных:

>>> l = ['tree', 'four'] >>> f2 = open('newdata.txt', 'w') >>> f2.write('one') 3 >>> f2.write(' two') 4 >>> f2.writelines(l)

Метод write() возвращает количество записанных символов.

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

После того как работа с файлом закончена, важно не забывать его закрыть, чтобы освободить место в памяти. Делается это с помощью файлового метода close() . Свойство файлового объекта closed позволяет проверить закрыт ли файл.

>>> f1.close() >>> f1.closed True >>> f2.closed False

Если файл открывается в заголовке цикла ( for i in open(‘fname’) ), то видимо интерпретатор его закрывает при завершении работы цикла или через какое-то время.

Практическая работа

  1. Создайте файл data.txt по образцу урока. Напишите программу, которая открывает этот файл на чтение, построчно считывает из него данные и записывает строки в другой файл ( dataRu.txt ), заменяя английские числительные русскими, которые содержатся в списке ( [«один», «два», «три», «четыре», «пять»] ), определенном до открытия файлов.
  2. Создайте файл nums.txt , содержащий несколько чисел, записанных через пробел. Напишите программу, которая подсчитывает и выводит на экран общую сумму чисел, хранящихся в этом файле.

Примеры решения и дополнительные уроки в pdf-версии курса

X Скрыть Наверх

Python. Введение в программирование

Запись в файл Python. Перезапись файла Python

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

Сегодня поговорим о создании и записи файлов.

Создание файла, его открытие и закрытие

Работа с текстовым файлом в Python начинается с момента вызова функции open. Она принимает в качестве атрибутов путь к объекту на ПК и режим обработки. Вы можете указать абсолютный путь (это адрес размещения на жёстком диске) или относительный (речь идёт о координатах относительно папки проекта).

Что касается режима обработки файла, то при его выборе учитывайте его назначение («r» — для чтения, «w» — для записи). Таблица ниже позволит вам ознакомиться с режимами доступа к файлу в Python:

1-20219-89defb.png

А вот пример простейшего взаимодействия с текстовым документом:

 
file = open("otus.txt", "w") file.write("hello world") file.close()

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

Метод close закрывает файл, а это необходимо сделать, выполнив нужные вам действия с переменной file (иначе потеряете информацию). Впрочем, можно обойтись и без close, используя связку операторов with as (переменная, которая ссылается на файл, должна быть прописана после конструкции):

 
with open("otus.txt", "w") as file: file.write("hello world")

Метод write() для записи в файл в Python

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

Запись в файл построчно выполняется посредством записи нужной вам строки с последующей записью \n — символа перевода строки.

Давайте ещё раз посмотрим на запись в файл с помощью метода write(). Синтаксис:

 
my_file.write(string);
 
my_file = open("otus.txt", "w") my_file.write("Люблю Python!\nЭто крутой язык!") my_file.close()

Код, представленный выше, создаст файл otus.txt , записав в него указанную строку.

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

 
lines = ["one", "two", "three"] with open(r"C:\otus.txt", "w") as file: for line in lines: file.write(line + '\n')

Этот код позволит создать небольшой массив lines, содержащий три строковых элемента: «one», «two» и «three». Благодаря функции open и связке операторов with as произойдёт открытие текстового файла otus.txt в корневом каталоге жёсткого диска C. Далее произойдёт запись всех элементов списка с помощью write. Символ \n обеспечит, чтобы каждая запись была выполнена с новой строки.

Создайте файл TXT в Python.

Высокоскоростная библиотека Python для создания файла TXT. Используйте наше преобразование Excel API для разработки высокоуровневого, независимого от платформы программного обеспечения в Python.

Aspose.Cells for Python
Overview
Download from NuGet

Open NuGet package manager, search for and install.
You may also use the following command from the Package Manager Console.

Visit our documentation for more details.

Создайте файл TXT, используя Python.

Как создать файл TXT? С помощью Aspose.Cells for Python через библиотеку NET вы можете легко создать файл TXT программно с помощью нескольких строк кода. Aspose.Cells for Python способен создавать кроссплатформенные приложения с возможностью генерировать, изменять, конвертировать, отображать и распечатывать все файлы Excel. Python Excel API не только конвертирует форматы электронных таблиц, но также может отображать файлы Excel в виде изображений, PDF, HTML, ODS, CSV, SVG, JSON, WORD, PPT и т. д., что делает его идеальным выбором для обмена документами в стандартных отраслевых форматах.

Как создать TXT в Python

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

  1. Создайте экземпляр класса Workbook.
  2. Доступ к первому листу книги.
  3. Получите нужную ячейку (ячейки) рабочего листа и введите значение в ячейку (ячейки).
  4. Используйте метод Save, чтобы сохранить книгу как файл TXT.

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

 from aspose import pycore from aspose.cells import Workbook, SaveFormat, FileFormatType  # Create Workbook object. workbook = Workbook()  # Access the first worksheet of the workbook. worksheet = workbook.worksheets[0]  # Get the desired cell(s) of the worksheet and input the value into the cell(s). worksheet.cells.get("A1").put_value("ColumnA") worksheet.cells.get("B1").put_value("ColumnB") worksheet.cells.get("A2").put_value("ValueA") worksheet.cells.get("B2").put_value("ValueB")  # Save the workbook as TXT file. workbook.save("output.txt") 

Библиотека Python для создания файла TXT

Мы размещаем наши пакеты Python в репозиториях PyPi.

Установить Aspose.Cells for Python сpypi , используйте команду как: $ pip install aspose-cells-python .

А еще вы можете следить за пошаговые инструкции о том, как установить «Aspose.Cells for Python via .NET» в вашу среду разработки.

Системные Требования

Aspose.Cells for Python не зависит от платформы API и может использоваться на любой платформе (Windows, Linux), просто убедитесь, что в системе есть Python 3,7 или выше.

TXT Формат файла TXT

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

Другое поддерживаемое создание электронных таблиц

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

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

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