sys.argv[0]
дает вам первую запись команды, используемой для запуска вашего скрипта, которая является самим именем скрипта.Если дважды щелкнуть файл, расширение которого связано с вашим сценарием или замороженным приложением, имя этого файла становится вторым аргументом команды, доступным через sys.argv[1]
.См., Например, sys.argv [1], что означает в сценарии .
Так что попробуйте следующий скрипт:
import os
import sys
if len(sys.argv) > 1:
filename = sys.argv[1]
print('Trying with', filename)
if os.path.isfile(filename):
with open(filename, 'r') as f:
data = f.read()
# do things with contents
else:
print('No arguments provided.')
input('Press Enter to end')
Это работает как незамерзший сценарий и как исполняемый файлзаморожен с cx_Freeze
.В Windows вы можете перетащить файл Foo.bas
на иконку вашего скрипта или исполняемого файла или щелкнуть правой кнопкой мыши на Foo.bas
, выбрать Open with
и выбрать свой скрипт или исполняемый файл в качестве приложения.