Python可执行程序运行的文件关联扩展

问题描述 投票:2回答:1

我编我的Python程序与线cx_Freeze

import sys
print(sys.argv[0])

让运行我的应用程序扩展名文件的名称。我希望能够双击一个文件名为Foo.bas然后我编译的可执行文件启动,它可以打开该文件并阅读其内容。所以我想扩展路径和文件名并阅读其内容是这样

with open(file, "r") as f:
    data = f.read()
# do things with contents

其中,文件将是扩展的路径和名称

所以,我该怎么做?

python executable file-handling cx-freeze file-association
1个回答
1
投票

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并选择您的脚本和可执行文件的应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.