Установить сценарий Python по умолчанию для открытия типа файла - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь установить свой Python скрипт в качестве программы по умолчанию для открытия файла (например, открывать каждый файл .txt в моей программе, когда я дважды щелкаю по нему). Я уже пробовал это:

from sys import argv

# write the arguments to a file for debugging purposes
with open("output.txt", "w+") as f:
    f.write(repr(argv))

Я преобразовал скрипт в .exe с помощью pyinstaller, иначе Windows не позволит мне использовать его для открытия файлов.

В командной строке , он работает: ввод main.exe some args действительно дает файл output.txt, внутри которого ["C:\...\main.exe", "some", "args"].

Я надеялся, что, открыв файл .txt с помощью этого сценария (в проводнике> щелкните правой кнопкой мыши на файл> открыть с помощью> другие приложения> установите флажок «всегда использовать это приложение» и выберите исполняемый файл), это будет то же самое, что запустить main.exe C:\...\that_file_that_i_just_clicked.txt в командной строке, из которой я мог бы затем использовать путь к файлу, чтобы открыть его в моем программа. Однако этого не происходит. Фактически, main.exe даже не запускается (потому что он даже не создает новый output.txt).

Как мне связать исполняемый файл, созданный pyinstaller, чтобы всегда открывать тип файла и как мне тогда узнать путь к открытому файлу в Python?

1 Ответ

1 голос
/ 20 июня 2020

То, что я делал неправильно, создавало output.txt с использованием относительного пути к файлу. Поскольку сценарий был преобразован в .exe (который в основном объединяет интерпретатор и сценарий в один файл), относительный путь к файлу перестал работать.

Использование абсолютного пути к файлу устранило мою проблему (как указано в Эрик Сан).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...