Python 个具有相关扩展名的可执行 运行 个文件
Python executable running files with associated extension
我已经用 cx_Freeze
编译了我的 python 程序
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]
获得。例如参见 [=17=].
所以尝试使用以下脚本:
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
和 select您的脚本或可执行文件作为应用程序。
我已经用 cx_Freeze
编译了我的 python 程序
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]
获得。例如参见 [=17=].
所以尝试使用以下脚本:
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
和 select您的脚本或可执行文件作为应用程序。