При чтении файла config.json с кириллицей на некоторых системах вы получаете UnicodeDecodeError. Какой вариант чтения наиболее устойчивый?
A
open("config.json", "r") без явного encoding: кодировка зависит от ОС и окруженияB
open("config.json", "r", encoding="utf-8"): режим чтения с явной кодировкой utf-8C
open("config.json", "a", encoding="utf-8"): режим a для дозаписи в конец файлаD
open("config.json", "w", encoding="utf-8"): режим w для записи и перезаписи файлаПравильный ответ. Явно указывайте
encoding="utf-8" и режим r при чтении текстовых файлов с кириллицей.Разбор
Кодировка по умолчанию у open зависит от ОС и окружения, поэтому чтение файла с кириллицей без явного encoding может приводить к UnicodeDecodeError. Для текстовых данных и конфигов обычно подходит encoding="utf-8". Также важно использовать режим r для чтения: режимы w и a предназначены для записи и не подходят для f.read().
Проверь себя · 1/3разбор после ответа
Что гарантирует конструкция
with open("data.csv", "r") as f: при чтении файла в Python?Ещё вопросы по теме «Работа с файлами: JSON и CSV»
- Вы сохраняете результат анализа в файл отчёта. Что произойдёт, если выполнить `open("report.csv", "w")`, когда `report.csv` уже существует?
- Что гарантирует конструкция `with open("data.csv", "r") as f:` при чтении файла в Python?
- Есть строка `text = '{"user_id": 7, "active": true}'`. Что вернёт `json.loads(text)`?
- Вы читаете CSV с заголовком через `csv.DictReader(f)`. Что представляет собой `row` внутри цикла `for row in csv.DictReader(f):`?
- Вы хотите дописывать строки в файл лога `errors.log`, не удаляя то, что уже записано. Как открыть файл?
- Все вопросы по «Работа с файлами: JSON и CSV» →