Мастерство работы с файлами в Python: создание, чтение, запись и открытие текстовых файлов
Работа с файлами в Python
В Python не нужно импортировать внешние библиотеки для чтения и записи файлов. Python предоставляет встроенную функцию для создания, записи и чтения файлов.
В этом уроке по работе с файлами в Python мы изучим:
- Как открыть текстовый файл в Python
- Как создать текстовый файл в Python
- Как добавить текст в файл в Python
- Как читать файлы в Python
- Как читать файл построчно в Python
- Режимы файлов в Python
Как открыть текстовый файл в Python
Для открытия файла нужно использовать встроенную функцию open. Функция open возвращает объект файла, содержащий методы и атрибуты для выполнения различных операций с файлами.
Синтаксис функции открытия файла в Python
file_object = open("filename", "mode")
Здесь,
- filename: имя файла, который открыл объект файла.
- mode: атрибут объекта файла сообщает, в каком режиме файл был открыт.
Подробнее об этих режимах ниже.
Как создать текстовый файл в Python
С записью в файл Python можно создать .txt файл (guru99.txt), используя код, продемонстрированный здесь:
Шаг 1) Откройте .txt файл
f = open("guru99.txt", "w+")
- Мы объявили переменную "f" для открытия файла guru99.txt. Open принимает 2 аргумента: файл, который мы хотим открыть, и строку, представляющую вид разрешения или операцию, которую мы хотим выполнить над файлом.
- Здесь мы использовали букву "w" в аргументе, что указывает на запись в файл Python и создаст файл, если он не существует в библиотеке.
- Знак плюс означает и чтение, и запись для операции создания файла в Python.
Шаг 2) Введите данные в файл
for i in range(10):
f.write("This is line %d\r\n" % (i+1))
- У нас есть цикл for, проходящий по диапазону 10 чисел.
- Используем функцию write для ввода данных в файл.
- Желаемый вывод для итерации в файле — "this is line number", который мы объявляем с функцией записи в файл Python, а затем процент d (отображает целое число).
- По сути, мы вставляем номер строки, которую пишем, затем ставим возврат каретки и символ новой строки.
Шаг 3) Закройте экземпляр файла
f.close()
- Это закроет экземпляр файла guru99.txt, сохранённый в памяти.
Вот результат после выполнения кода для примера создания текстового файла в Python:

Когда вы кликнете на ваш текстовый файл, в нашем случае "guru99.txt", он будет выглядеть примерно так:

Как добавить текст в файл в Python
Вы также можете добавить/дописать новый текст в уже существующий файл или новый файл.
Шаг 1)
f = open("guru99.txt", "a+")
Опять же, если вы видите знак плюса в коде, это означает, что будет создан новый файл, если он не существует. Но в нашем случае у нас уже есть файл, поэтому нам не нужно создавать новый файл для операции добавления в файл Python.
Шаг 2)
for i in range(2):
f.write("Appended line %d\r\n" % (i+1))
Это запишет данные в файл в режиме добавления.

Вы можете увидеть вывод в файле "guru99.txt". Результат кода: предыдущий файл дополнен новыми данными операцией добавления в файл Python.

Как читать файлы в Python
Вы можете прочитать файл в Python, вызвав .txt файл в "режиме чтения" (r).
Шаг 1) Откройте файл в режиме чтения
f = open("guru99.txt", "r")
Шаг 2) Мы используем функцию mode в коде для проверки, что файл открыт в режиме чтения. Если да, продолжаем.
if f.mode == 'r':
Шаг 3) Используем f.read для чтения данных файла и сохранения в переменную contents для чтения файлов в Python
contents = f.read()
Шаг 4) Выводим contents для чтения текстового файла в Python
Вот вывод примера чтения файла в Python:

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

Когда вы запускаете код (f1 = f.readlines()) для построчного чтения файла в Python, он разделит каждую строку и представит файл в читаемом формате. В нашем случае строка коротка и читаема, вывод будет похож на режим чтения. Но если есть сложный файл данных, который нечитаем, этот кусок кода может быть полезен.
Режимы файлов в Python
Ниже приведены различные Режимы файлов в Python:
| Режим | Описание |
|---|---|
| 'r' | Режим по умолчанию. Открывает файл для чтения. |
| 'w' | Открывает файл для записи. Если файл не существует, создаёт новый. Если существует — усекает файл. |
| 'x' | Создаёт новый файл. Если файл уже существует, операция завершается ошибкой. |
| 'a' | Открывает файл в режиме добавления. Если файл не существует, создаёт новый. |
| 't' | Режим по умолчанию. Открывает в текстовом режиме. |
| 'b' | Открывает в бинарном режиме. |
| '+' | Открывает файл для чтения и записи (обновления). |
Вот полный код для примера Python print() в файл
Пример для Python 2
def main():
f = open("guru99.txt","w+")
# f = open("guru99.txt","a+")
for i in range(10):
f.write("This is line %d\r\n" % (i+1))
f.close()
# Открыть файл обратно и прочитать содержимое
# f = open("guru99.txt", "r")
# if f.mode == 'r':
# contents = f.read()
# print contents
# или, readlines читает отдельные строки в список
# fl = f.readlines()
# for x in fl:
# print x
if __name__ == "__main__":
main()
Пример для Python 3
Ниже ещё один пример Python print() в файл:
def main():
f = open("guru99.txt","w+")
# f = open("guru99.txt","a+")
for i in range(10):
f.write("This is line %d\r\n" % (i+1))
f.close()
# Открыть файл обратно и прочитать содержимое
# f = open("guru99.txt", "r")
# if f.mode == 'r':
# contents = f.read()
# print(contents)
# или, readlines читает отдельные строки в список
# fl = f.readlines()
# for x in fl:
# print(x)
if __name__ == "__main__":
main()
Резюме
- Python позволяет читать, писать и удалять файлы.
- Используйте функцию open("filename","w+") для создания текстового файла в Python. + говорит интерпретатору Python открыть текстовый файл с правами чтения и записи.
- Для добавления данных в существующий файл или операции Python print в файл используйте команду open("Filename", "a")
- Используйте функцию чтения из файла Python для чтения ВСЕГО содержимого файла.
- Используйте функцию readlines для построчного чтения содержимого файла.
Python
- Работа с файлами в C: мастерство ввода-вывода с fopen, fprintf, fread и fseek
- Работа с файлами в Python: открытие, чтение, запись и управление
- Инициализация блочной памяти FPGA из текстовых файлов с помощью библиотеки TEXTIO в VHDL
- Чтение файлов в Java с BufferedReader — Практическое руководство с примерами
- Функция print() в Python: практическое руководство с примерами
- Проверка существования файлов и директорий в Python — практическое руководство
- Python JSON: кодирование, декодирование и работа с файлами — практическое руководство
- Вычисление среднего значения в Python: практическое руководство
- Ввод-вывод файлов в Python: полное руководство по операциям I/O
- Обработка исключений в Python: подробное руководство