- Функция
open():open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)- Возвращает файловый объект (поток).
file: Путь к файлу (строка).mode: Режим доступа (строка):'r': Чтение (по умолчанию). Ошибка, если файла нет.'w': Запись. Создает файл, если его нет; перезаписывает (очищает), если есть.'a': Дозапись. Создает файл, если его нет; добавляет данные в конец, если есть.'x': Эксклюзивное создание. Ошибка, если файл существует.'b': Бинарный режим (для нетекстовых файлов, например, изображений). Добавляется к основному режиму:'rb','wb','ab'.'t': Текстовый режим (по умолчанию).'+': Обновление (чтение и запись). Добавляется к основному режиму:'r+','w+','a+'.
encoding: Кодировка для текстового режима (важно указывать, часто'utf-8').- Пример:
my_file = open('my_text.txt', mode='r', encoding='utf-8')
- Методы файлового объекта:
.read([size]): Читаетsizeбайт/символов или весь файл, еслиsizeне указан. Перемещает курсор.content = my_file.read() # Весь файл first_chars = my_file.read(10) # Первые 10 символов.readline(): Читает одну строку до символа\n(включая его). Перемещает курсор. Возвращает пустую строку в конце файла.line1 = my_file.readline() line2 = my_file.readline() # Убрать символ переноса строки: clean_line = my_file.readline().strip().readlines(): Читает все оставшиеся строки и возвращает их в виде списка строк (включая\n). Может потреблять много памяти для больших файлов.all_lines = my_file.readlines().write(s): Записывает строкуsв файл (в режимах'w','a','+'). Возвращает количество записанных символов.file_to_write = open('output.txt', mode='w', encoding='utf-8') count = file_to_write.write("Hello, world!\n") print(count).writelines(lines): Записывает список строкlinesв файл (не добавляет разделители строк автоматически)..close(): Закрывает файл, освобождая ресурсы. Важно вызывать всегда (если не используетсяwith).my_file.close().seek(offset, [whence]): Перемещает курсор файла на позициюoffset.whence(0 - от начала, 1 - от текущей, 2 - от конца) используется в бинарном режиме. Для текстовых файлов обычно используется толькоseek(0)(переход в начало).my_file.seek(0) # Перейти в начало файла.tell(): Возвращает текущую позицию курсора (в байтах).
- Контекстный менеджер
with(Рекомендуемый способ):- Гарантирует автоматическое закрытие файла (
.close()) после завершения блокаwith, даже если внутри произошла ошибка. - Синтаксис:
try: with open('my_file.txt', mode='r', encoding='utf-8') as f: content = f.read() # Работа с content # Файл f здесь уже автоматически закрыт except FileNotFoundError: print("Файл не найден.") with open('output.txt', 'w', encoding='utf-8') as outfile: outfile.write("Эта строка будет записана.\n") # Файл outfile здесь уже автоматически закрыт
- Гарантирует автоматическое закрытие файла (
- JSON (
JavaScript Object Notation):- Текстовый формат обмена данными.
- Модуль
jsonв Python для работы с ним. - Основные функции:
json.dump(obj, fp, indent=None, ...): Записать Python-объектobjв файловый объектfpв формате JSON.indentдля красивого вывода.json.dumps(obj, indent=None, ...): Преобразовать Python-объектobjв строку JSON.json.load(fp): Прочитать JSON из файлового объектаfpи преобразовать в Python-объект (обычноdictилиlist).json.loads(s): Преобразовать строку JSONsв Python-объект.
import json data = {'name': 'Alice', 'age': 30, 'city': 'New York'} # Запись в файл with open('data.json', 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=4) # Чтение из файла with open('data.json', 'r', encoding='utf-8') as f: loaded_data = json.load(f) print(loaded_data['city']) # Вывод: New York
〰〰〰 𓆝 𓆟 𓆞 𓆝 𓆟 𓆝 𓆟 𓆞 〰〰〰