我编我的Python程序与线cx_Freeze
import sys
print(sys.argv[0])
让运行我的应用程序扩展名文件的名称。我希望能够双击一个文件名为Foo.bas
然后我编译的可执行文件启动,它可以打开该文件并阅读其内容。所以我想扩展路径和文件名并阅读其内容是这样
with open(file, "r") as f:
data = f.read()
# do things with contents
其中,文件将是扩展的路径和名称
所以,我该怎么做?
sys.argv[0]
给你用来运行脚本,这是脚本的名称本身的命令的第一个条目。如果你在它的扩展名与您的脚本或冻结的应用程序关联的文件,双击该文件的名称变成了命令,这是可以通过sys.argv[1]
的第二个参数。例如,见sys.argv[1] meaning in script。
因此,与下面的脚本尝试:
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
并选择您的脚本和可执行文件的应用程序。