Чтение и запись файлов
Для более подробного изучения манипуляций с путями к файлам и каталогам см. страницу Пути к файлам и каталогам.
Процесс чтения/записи файлов
Для чтения/записи в файл в Python рекомендуется использовать оператор with, который автоматически закроет файл после завершения работы, управляя доступными ресурсами.
Открытие и чтение файлов
Функция open открывает файл и возвращает соответствующий файловый объект.
# Чтение файла с использованием оператора 'with': автоматически закрывает файл по завершении
with open('/home/labex/project/hi.txt') as hello_file:
hello_content = hello_file.read() # Читает все содержимое файла
hello_content
'Hello World!'
Викторина
Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения
Каково основное преимущество использования оператора
with при открытии файлов?A. Файл автоматически закрывается по завершении, даже если возникает ошибка
B. Файлы открываются быстрее
C. Файлы можно открывать одновременно в режиме чтения и записи
D. Файлы автоматически сжимаются
Альтернативно, вы можете использовать метод readlines(), чтобы получить список строковых значений из файла, по одной строке для каждой строки текста:
# Метод readlines(): возвращает список строк, по одной на строку
with open('sonnet29.txt') as sonnet_file:
sonnet_file.readlines() # Возвращает список, где каждая строка является строкой
['When, in disgrace with fortune and men's eyes,\n',
' I all alone beweep my outcast state,\n',
"And trouble deaf heaven with my bootless cries,\n",
"And look upon myself and curse my fate,']
Вы также можете итерироваться по файлу построчно:
# Итерация по файлу построчно (эффективно по памяти для больших файлов)
with open('sonnet29.txt') as sonnet_file:
for line in sonnet_file: # Файловый объект итерируем
print(line, end='') # Печать без дополнительного перевода строки
When, in disgrace with fortune and men's eyes,
I all alone beweep my outcast state,
And trouble deaf heaven with my bootless cries,
And look upon myself and curse my fate,
Запись в файлы
# Запись в файл: режим 'w' перезаписывает существующий файл
with open('bacon.txt', 'w') as bacon_file: # 'w' = режим записи
bacon_file.write('Hello world!\n') # Возвращает количество записанных символов
13
# Добавление в файл: режим 'a' добавляет содержимое в конец существующего файла
with open('bacon.txt', 'a') as bacon_file: # 'a' = режим добавления
bacon_file.write('Bacon is not a vegetable.')
25
with open('bacon.txt') as bacon_file:
content = bacon_file.read()
print(content)
Hello world!
Bacon is not a vegetable.
Викторина
Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения
В чем разница между открытием файла в режиме
'w' и режиме 'a'?A.
'w' для чтения, 'a' для записиB.
'w' перезаписывает файл, 'a' добавляет в конец файлаC.
'w' для Windows, 'a' для AppleD. Разницы нет