Как я могу имитировать собственное расширение файла

Я программирую программное обеспечение с использованием Python, которое загружает и сохраняет информацию в PDF-файлы, и я хочу настроить экспортированные файлы как «.[имя_программы]» вместо «.pdf». Допустим, имя_программы — «картошка».

Вначале я пытался переименовать файл «file.pdf» в «file.potato» при экспорте, а затем переименовать файл «file.potato» в «file.pdf». Но изменение расширения файла не меняет его тип или содержимое, как сказал мне один комментарий, поэтому, если вы откроете «file.potato» в формате PDF, программа чтения PDF-файлов прочитает его без каких-либо проблем.

Я думал открыть PDF-файл в режиме rb и написать строку, завершенную в \n, а затем сохранить содержимое как «file.potato», чтобы программа чтения PDF-файлов не могла читать его как обычный PDF-файл, даже если вы попытаетесь прочитать в формате PDF. Чтобы прочитать его еще раз, я бы вернул изменения в двоичном режиме, чтобы использовать содержимое PDF в своем программном обеспечении.

Есть ли у вас идеи получше, как это сделать?

Идея состоит в том, чтобы позже реализовать метод, позволяющий изменить ситуацию, чтобы PDF-файл можно было снова прочитать.

Nicolas Bartual 28.05.2024 22:27

Не публикуйте изображения кода, данных или сообщений об ошибках. Их невозможно найти и сложно настроить тестовую среду. См. Как спросить

Tangentially Perpendicular 28.05.2024 22:31

Изменение расширения файла не меняет его тип или содержимое — точно так же, как вы не можете снять значок Fiat со своей машины и приклеить значок Ferrari — это все равно будет Fiat и не будет ехать быстрее.

Mark Setchell 28.05.2024 22:42

Удаление первого байта может затруднить чтение, но не сделать его нечитаемым. Все фактические данные по-прежнему там. Какова реальная основная цель и почему?

David 28.05.2024 22:44

@KJ Как ты собираешься отменить удаление всего остального?

no comment 29.05.2024 00:47

Какова здесь конечная цель? Если вы хотите, чтобы люди не могли его прочитать, используйте пароль. Если вы хотите просто «усложнить» чтение, простой способ — изменить порядок байтов в файле на обратный. Если вы используете этот метод, ваша обфускация такая же, как и деобфускация, нет необходимости писать две партии кода. Каждый вызов преобразует либо запутанное в распутанное, либо деобфусцированное в запутанное.

Mark Setchell 29.05.2024 20:24

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

Nicolas Bartual 31.05.2024 08:21
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
7
7
103
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

PDF-файлы являются двоичными, а не текстовыми. Вам нужно открыть его в бинарном режиме.

@KJ, это может быть правдой, но если вы используете текстовый режим Python для открытия PDF-файла, как это сделал OP в снимке экрана кода, который они изначально опубликовали, но отредактировали, он будет поврежден. Вам нужно открыть его в двоичном режиме Python, чтобы иметь возможность его обработать.

joanis 30.05.2024 18:38

Фактически, вы сами указываете на проблему: «Все PDF-файлы будут работать как текст, если они правильно определены читателем», и это начинается с использования двоичного режима Python при открытии файла.

joanis 30.05.2024 18:41

@KJ, это кажется хорошим советом и предполагает, что я неправильно понял ваш первый комментарий, извините.

joanis 30.05.2024 18:54

Да, это лучшее решение, которое я тестировал, спасибо.

Nicolas Bartual 31.05.2024 08:22

Другие вопросы по теме