Я программирую программное обеспечение с использованием Python, которое загружает и сохраняет информацию в PDF-файлы, и я хочу настроить экспортированные файлы как «.[имя_программы]» вместо «.pdf». Допустим, имя_программы — «картошка».
Вначале я пытался переименовать файл «file.pdf» в «file.potato» при экспорте, а затем переименовать файл «file.potato» в «file.pdf». Но изменение расширения файла не меняет его тип или содержимое, как сказал мне один комментарий, поэтому, если вы откроете «file.potato» в формате PDF, программа чтения PDF-файлов прочитает его без каких-либо проблем.
Я думал открыть PDF-файл в режиме rb и написать строку, завершенную в \n, а затем сохранить содержимое как «file.potato», чтобы программа чтения PDF-файлов не могла читать его как обычный PDF-файл, даже если вы попытаетесь прочитать в формате PDF. Чтобы прочитать его еще раз, я бы вернул изменения в двоичном режиме, чтобы использовать содержимое PDF в своем программном обеспечении.
Есть ли у вас идеи получше, как это сделать?
Не публикуйте изображения кода, данных или сообщений об ошибках. Их невозможно найти и сложно настроить тестовую среду. См. Как спросить
Изменение расширения файла не меняет его тип или содержимое — точно так же, как вы не можете снять значок Fiat со своей машины и приклеить значок Ferrari — это все равно будет Fiat и не будет ехать быстрее.
Удаление первого байта может затруднить чтение, но не сделать его нечитаемым. Все фактические данные по-прежнему там. Какова реальная основная цель и почему?
@KJ Как ты собираешься отменить удаление всего остального?
Какова здесь конечная цель? Если вы хотите, чтобы люди не могли его прочитать, используйте пароль. Если вы хотите просто «усложнить» чтение, простой способ — изменить порядок байтов в файле на обратный. Если вы используете этот метод, ваша обфускация такая же, как и деобфускация, нет необходимости писать две партии кода. Каждый вызов преобразует либо запутанное в распутанное, либо деобфусцированное в запутанное.
Это предмет по управлению проектами, где я разрабатываю код вместе с некоторыми другими студентами, и наш владелец продукта требует специального расширения, так что да, не позволяйте людям читать и снова появляйтесь в проводнике.






PDF-файлы являются двоичными, а не текстовыми. Вам нужно открыть его в бинарном режиме.
@KJ, это может быть правдой, но если вы используете текстовый режим Python для открытия PDF-файла, как это сделал OP в снимке экрана кода, который они изначально опубликовали, но отредактировали, он будет поврежден. Вам нужно открыть его в двоичном режиме Python, чтобы иметь возможность его обработать.
Фактически, вы сами указываете на проблему: «Все PDF-файлы будут работать как текст, если они правильно определены читателем», и это начинается с использования двоичного режима Python при открытии файла.
@KJ, это кажется хорошим советом и предполагает, что я неправильно понял ваш первый комментарий, извините.
Да, это лучшее решение, которое я тестировал, спасибо.
Идея состоит в том, чтобы позже реализовать метод, позволяющий изменить ситуацию, чтобы PDF-файл можно было снова прочитать.