С помощью Python можно читать и редактировать содержимое файлов.
Легче всего работать с текстовыми файлами. Перед редактированием файл нужно открыть, что можно сделать с помощью функции open.

myfile = open(“filename.txt”)

Аргумент функции open – путь к файлу. Если файл находится в текущей рабочей директории программы, можно задать только его имя.

Вы можете указать режим, в котором нужно открыть файл, добавив второй аргумент в заголовок функции open.
Если указать “r”, файл будет открыт в режиме чтения; этот режим используется по умолчанию;
“w” – файл будет открыт в режиме записи;
“а” – файл будет открыт в режиме добавления: новый контент будет добавляться в конец файла;

“b” – файл будет открыт в двоичном режиме, который используется для нетекстовых файлов (таких как изображения и звуковые файлы).

# write mode
open(“filename.txt”, “w”)

# read mode
open(“filename.txt”, “r”)
open(“filename.txt”)

# binary write mode
open(“filename.txt”, “wb”)

Вы можете использовать знак + в каждом из режимов выше, чтобы предоставить им дополнительный доступ к файлам. Например, r+ открывает файл для чтения и записи.

После того, как вы открыли файл и поработали с ним, его нужно закрыть.
Это делается с помощью метода close, указанного в качестве объекта файла.

file = open(“filename.txt”, “w”)
# do stuff to the file
file.close()

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

file = open(“filename.txt”, “r”)
cont = file.read()
print(cont)
file.close()

Программа выведет все содержимое файла “filename.txt”.

Чтобы прочесть только часть данных из файла, в качестве аргумента функции read укажите определенное число. Это количество байтов, которые будут прочитаны.
При добавлении большего количества команд чтения с того же файлового объекта, содержимое файла будет прочитано дальше байт за байтом. Если не указать ни одного аргумента, read возвращает всю оставшуюся часть файла.

file = open(“filename.txt”, “r”)
print(file.read(16))
print(file.read(4))
print(file.read(4))
print(file.read())
file.close()

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

file = open(“filename.txt”, “r”)
file.read()
print(“Re-reading”)
print(file.read())
print(“Finished”)
file.close()

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

file = open(“filename.txt”, “r”)
print(file.readlines())
file.close()

>>>
[‘Line 1 text \n’, ‘Line 2 text \n’, ‘Line 3 text’]
>>>

Запись в файл осуществляется методом write. В файл будет записана строка кода.

file = open(“newfile.txt”, “w”)
file.write(“This has been written to a file”)
file.close()

file = open(“newfile.txt”, “r”)
print(file.read())
file.close()

В режиме “w” будет создан файл, если он еще не был создан.

Когда файл открывается в режиме записи, все существующее содержимое файла удаляется.

file = open(“newfile.txt”, “w”)
file.write(“Some new text”)
file.close()

file = open(“newfile.txt”, “r”)
print(“Reading new contents”)
print(file.read())
print(“Finished”)
file.close()

Как видите, содержимое файла было перезаписано.

Метод write в случае успеха возвращает количество байт, записанных в файле.

msg = “Hello world!”
file = open(“newfile.txt”, “w”)
amount_written = file.write(msg)
print(amount_written)
file.close()

С целью рационального использования ресурсов обычно рекомендуется всегда закрывать файлы после работы с ними. Для этого можно использовать try и finally.

try:
   f = open(“filename.txt”)
   print(f.read())
finally:
   f.close()

Еще один способ сделать это – с помощью инструкции with. Создается временная переменная (часто называемая f), размещаемая в ветви инструкции with.

with open(“filename.txt”) as f:
   print(f.read())

Файл автоматически закрывается после выполнения инструкции with, даже если возникают исключения.