Открытие файлов
Есть два способа открытия файлов, в первом случае нужно закрывать файл самостоятельно, во втором случае - не нужно. Рекомендуется использовать второй вариант.
f = open(filename, [mode], [encoding])
text = f.read()
f.close()
with open (filename, [mode], [encoding]) as f:
text = f.read()
Опции открытия файлов
Режим
- 'r' открытие на чтение (является значением по умолчанию)
- 'w' открытие на запись, содержимое файла удаляется, если файла не существует, создается новый
- 'x' создание файла и открытие его на запись, если файл существует - генерируется исключение
- 'a' открытие для добавления, информация добавляется в конец файла
- 'b' открытие в двоичном режиме
- 't' открытие в текстовом режиме (является значением по умолчанию)
- '+' открытие на чтение и запись
Кодировка
- Если не указывать encoding берется кодировка системы по умолчанию
- Для Windows - 1251
- Для Linux - utf-8
Кодировку стоит указывать всегда.
Методы для чтения и записи
- text = file.read() просто возвращает весь текст в виде строки
- text = file.readline() возвращает список всех строк, включая символы \n, два раза выполнить эту команду нельзя без закрытия файла, так как курсор будет в конце файла и будет возвращен пустой список
- file.write(text)
Примеры
f = open ('/file.txt', 'r', encoding='utf-8')
text = f.read()
f.close()
# Чтобы избежать ситуации когда файл останется открыт при какой то ошибке можно воспользоваться конструкцией
try:
file = open('file.txt', 'r', encoding='utf-8')
text = file.read()
finally:
file.close()
with open ('file1.txt', 'r', encoding='utf-8') as f:
text = f.read()
with open('file2.txt','w', encoding='utf-8') as f:
f.write(text)