如何通过双击直接用python打开自定义文件?
我在windows机器上编程,我有一个应用程序,可以读取用户选择的文件。是否允许他们在双击时直接打开文件。当程序通过cxfreeze“编译”为.exe时,这需要起作用 我真正想问的是:如何通过双击直接用python打开自定义文件?,python,file,python-3.x,exe,cx-freeze,Python,File,Python 3.x,Exe,Cx Freeze,我在windows机器上编程,我有一个应用程序,可以读取用户选择的文件。是否允许他们在双击时直接打开文件。当程序通过cxfreeze“编译”为.exe时,这需要起作用 我真正想问的是: 是否有一种方法允许用户双击自定义文件(.lpd),当用户双击自定义文件(.lpd)时,windows启动程序(一个已编译的cxfreeze.exe)并将文件路径作为参数传递给用户。windows将文件与特定程序关联的唯一方法是通过其扩展名,因此这仅在文件具有唯一扩展名时才有效(看起来可能是这样)。因此用户需要在其
是否有一种方法允许用户双击自定义文件(.lpd),当用户双击自定义文件(.lpd)时,windows启动程序(一个已编译的cxfreeze.exe)并将文件路径作为参数传递给用户。windows将文件与特定程序关联的唯一方法是通过其扩展名,因此这仅在文件具有唯一扩展名时才有效(看起来可能是这样)。因此用户需要在其计算机上设置关联,这取决于Windows的版本。例如,在Windows 7中,可能通过
控制面板\All Control Panel Items\Default Programs\Set Associations
您可以在他们的系统上自动设置此关联(可能是通过编辑Windows注册表),但这通常是在安装过程中完成的,您应该先请求用户许可才能执行此操作。我使用PyInstaller生成exe。 下面是一个小例子:
import sys
class Test():
def __init__(self, path=None):
super().__init__()
self.path = path
def start(self):
if self.path == None:
pass
else:
print(self.path)
if __name__ == '__main__':
if len(sys.argv) > 1 :
mytest = Test(sys.argv[1])
else:
mytest = Test()
mytest.start()
是的,但是当assoc us设置和用户双击时,我如何获取文件路径我认为它是作为第一个(也是唯一一个)参数传递给您的程序的。因此在python中,它可能是
sys.args[1]
。我在cx\u Freeze GitHub repo中打开了一个问题,请求这样做: