Python имеет различные методы для создания, чтения, записи, обновления и удаления файлов. Кроме того, Python позволяет пользователям обрабатывать файлы, т. е. читать и записывать, а также использовать множество других опций обработки для работы с файлами. Давайте посмотрим, как записать данные в файл построчно в Python с разными сценариями.
Запись в файл в Python
Чтобы написать файл на Python, используйте функцию open() и добавьте параметр «a» или «w». Чтобы добавить содержимое в конец файла, используйте параметр «a». Чтобы перезаписать любой существующий контент в файле, используйте параметр «w». open() — это встроенная функция обработки файлов Python, которая открывает и возвращает файл как файловый объект.
|
1 2 3 4 5 6 7 |
f = open("app.txt", "a") f.write("File is updated with appended content!") f.close() #open and read the file after the appending: f = open("app.txt", "r") print(f.read()) |
Выход:
|
1 |
11 12Файл обновлен добавленным содержимым! |
В этом примере вы можете видеть, что вывод начинается с 11 12. Это означает, что 11 и 12 уже есть в файле, и он только что добавил: «Файл обновлен добавленным содержимым!».
Как записать строку в файл
Чтобы записать строку в файл на Python, используйте функцию with open(). Оператор with помогает вам закрыть файл, не закрывая его явно. Это правильный способ записи строки в файл. Оператор with используется для переноса выполнения блока на методы, определенные диспетчером контекста.
Не используйте функцию os.linesep() в качестве разделителя строк при записи файлов, открытых в текстовом режиме(по умолчанию); используйте один «\n» вместо всех платформ.
Пример
Если файл не существует, функция open() создаст новый файл. Если файл существует и вы хотите добавить новое содержимое, то при создании файла используйте режим «а». Используйте «w», чтобы писать с усечением.
|
1 2 |
with open('data.txt', 'a') as f: f.write('Welcome Playstation 5\n') |
Выход:
Будет создан новый файл с именем data.txt со следующим содержимым.
|
1 |
Welcome Playstation 5 |
Кроме того, вы можете использовать функцию print() вместо функции write().
|
1 2 |
with open('data.txt', 'a') as f: print("hey there", file=f) |
Выход:
Создан новый файл с именем data.txt со следующим содержимым.
|
1 |
hi there |
Функция write() более эффективна, чем функция print(). Поэтому я рекомендую использовать функцию write() для записи строк в файл.
Запись нескольких строк в файл в Python
Чтобы записать несколько строк в файл в Python, используйте функцию with open(), а затем функцию writelines().
Метод writelines() записывает элементы списка в файл. Тексты будут вставляться в зависимости от режима файла и позиции потока.
Синтаксис функции writelines()
|
1 |
file.writelines(list) |
Аргументы
| list | Список текстов или байтовых объектов, которые будут вставлены. |
Пример
Мы запишем три строки в новый файл.
|
1 2 3 4 5 6 |
with open('data.txt', 'a') as f: line1 = "PS5 Restock India \n" line2 = "Xbox Series X Restock India \n" line3 = "Nintendo Switch Restock India" f.writelines([line1, line2, line3]) |
Выход:
На выходе будет файл data.txt со следующим содержимым.
|
1 2 3 |
PS5 Restock India Xbox Series X Restock India Nintendo Switch Restock India |
Как видите, мы написали три строки в только что созданный файл.
Построчная запись в csv в Python
Чтобы записать строку за строкой в файл csv в Python, используйте либо функцию file.write(), либо функцию csv.writer(). Функция csv.writer() используется для создания объекта записи.
Мы увидим пример метода file.write().
|
1 2 3 4 5 6 |
txt = ["PS5", "is", "currently", "unavailable", "in", "India"] with open('shows.csv','w') as file: for line in txt: file.write(line) file.write('\n') |
Выход:
Он создаст файл show.csv со следующим содержимым.
|
1 2 3 4 5 6 |
PS5 is currently unavailable in India |
И мы получаем текст внутри файла csv.
Давайте посмотрим на подход csvwriter.
|
1 2 3 4 5 6 7 |
import csv txt = ["PS5", "is", "currently", "unavailable", "in", "India"] with open('shows.csv', 'w', newline='') as file: writer = csv.writer(file) writer.writerows(txt) |
Выход:
|
1 2 3 4 5 6 |
P,S,5 i,s c,u,r,r,e,n,t,l,y u,n,a,v,a,i,l,a,b,l,e i,n I,n,d,i, |
