Чтение из файлов с расширением, отличное от .txt на Python
Я пишу свой ЯП на Python, и мне надо обрабатывать файлы формата .kcc (да, это нигде не определенный формат). Как мне его обрабатывать? Только через бинарный режим? Спасибо
Ответы (3 шт):
Расширение файла имеет значение только в случае, если что-то пытается по этому расширению определить медиа-тип (как, например, вэб-сервер), а значит нет никакой необходимости объяснять интерпретатору что это за файл.
Так-то, можно и бинарные данные в файл name.txt записать.
Если ваш файл содержит только текст,
если его можно редактировать в текстовом редакторе,
если при замене окончаний строк на Linux-стиль (LF) или на Windows-стиль (CR LF) смысл содержимого файла не меняется,
то обрабатывайте его как текст.
В любом другом случае обрабатывайте его как двоичный файл.
Расширение файла и режим чтения файла - это не одно и то же. Для выбора режима чтения главное не расширение файла, а его содержимое. Если файл содержит некую текстовую информацию в какой-то стандартной кодировке (например, UTF-8
), то открывайте его в тестовом режиме и читайте как обычный текстовый файл, никаких проблем не будет, и совершенно неважно, какое при этом у файла будет расширение - хоть ".txt", хоть ".kcc", хоть ".json", хоть ".коламбиапикчерспредставляет". Расширение нужно вам, чтобы понимать, что находится в файле, и нужно операционной системе, чтобы знать, какой программе отдавать этот файл, если на этот файл нажмёт пользователь. Если вы знаете, что находится в конкретном файле и этот файл читает ваша программа, то вы можете давать этому файлу любое имя и любое расширение, это ни на что вообще не влияет при работе с этим файлом из вашей программы.