运行具有相关扩展名的Python可执行文件

运行具有相关扩展名的Python可执行文件,python,executable,file-handling,cx-freeze,file-association,Python,Executable,File Handling,Cx Freeze,File Association,我已经用cx\u Freeze编译了我的python程序 import sys print(sys.argv[0]) 获取运行我的应用程序的扩展文件的名称。 我希望能够双击名为Foo.bas的文件,然后我编译的可执行文件启动,它可以打开该文件并读取其内容。所以我想得到扩展路径和文件名,然后像这样读取它的内容 with open(file, "r") as f: data = f.read() # do things with contents 其中file将是扩展路径和名称 那么我该

我已经用
cx\u Freeze
编译了我的python程序

import sys
print(sys.argv[0])
获取运行我的应用程序的扩展文件的名称。 我希望能够双击名为
Foo.bas
的文件,然后我编译的可执行文件启动,它可以打开该文件并读取其内容。所以我想得到扩展路径和文件名,然后像这样读取它的内容

with open(file, "r") as f:
    data = f.read()
# do things with contents
其中file将是扩展路径和名称


那么我该怎么做呢?

sys.argv[0]
提供用于运行脚本的命令的第一个条目,即脚本名称本身。如果双击扩展名与脚本或冻结的应用程序关联的文件,此文件的名称将成为命令的第二个参数,可通过
sys.argv[1]
获得。例如,见

因此,请尝试使用以下脚本:

导入操作系统
导入系统
如果len(sys.argv)>1:
filename=sys.argv[1]
打印('尝试',文件名)
如果os.path.isfile(文件名):
将open(filename,'r')作为f:
data=f.read()
#用内容做事
其他:
打印('未提供参数')
输入('按Enter键结束')

这既可以作为未冻结的脚本,也可以作为使用
cx\u Freeze
冻结的可执行文件。在Windows上,您可以将
Foo.bas
文件拖放到脚本或可执行文件的图标上,或者右键单击
Foo.bas
,选择
Open with
,然后选择脚本或可执行文件作为应用程序。

我只是通过反复使用命令并接收文件名和Foo.bas文件名来解决这个问题。我本来打算试试的,直到我再次查看帖子。谢谢