Python 通过右键单击';用'打开;windows中的上下文菜单,然后在其他程序中打开

Python 通过右键单击';用'打开;windows中的上下文菜单,然后在其他程序中打开,python,windows,filepath,sys,python-os,Python,Windows,Filepath,Sys,Python Os,我使用一个软件,当你关闭时,它会保存你当前的配置,但是,下次我通过点击一个与之相关的文件来打开该软件时,它会尝试通过相同的配置来运行该文件,这是我不想要的。因此,我创建了一个python脚本,首先打开该程序的应用程序数据,将配置重置为默认值,然后再次打开该程序 如果我只是尝试在没有文件的情况下加载程序,但我希望能够单击与该程序关联的文件(通常我可以双击该文件在程序中打开),然后使用windows中的“打开方式”功能选择我的脚本,然后在脚本清除最后一个配置后打开程序中的文件。 目前,如果我这样做,

我使用一个软件,当你关闭时,它会保存你当前的配置,但是,下次我通过点击一个与之相关的文件来打开该软件时,它会尝试通过相同的配置来运行该文件,这是我不想要的。因此,我创建了一个python脚本,首先打开该程序的应用程序数据,将配置重置为默认值,然后再次打开该程序

如果我只是尝试在没有文件的情况下加载程序,但我希望能够单击与该程序关联的文件(通常我可以双击该文件在程序中打开),然后使用windows中的“打开方式”功能选择我的脚本,然后在脚本清除最后一个配置后打开程序中的文件。 目前,如果我这样做,它会清除配置并打开程序,但不会加载任何文件

本质上,我问的是如何将文件传递给python,然后让python将该文件传递给第三方应用程序

import sys
import subprocess

def main():
    if len(sys.argv) == 1:
        path = sys.argv[0]
        subprocess.run(['/path/to/my.exe', path])
    else:
        print('Usage myscript.py <path>')

if __name__ == "__main__":
    main()
我正在使用“os.startfile('link to.exe')函数打开程序,但是如何通过单击文件并用脚本打开它,将文件路径作为参数/字符串导入python

path = 'path/to/file/selected'  # passed to python from selecting the file in windows explorer before starting script

# execute some code

os.startfile('path')
对于python,我是一个初学者,因此任何帮助都将不胜感激


在windows 10上使用python 3.6

您可以使用
sys.argv
访问传递给脚本的命令行参数。只要您想将这些参数传递给某个第三方应用程序(可执行二进制文件),就应该使用
子流程
模块作为
os。startfile
用于启动一个文件及其相关应用程序

import sys
import subprocess

def main():
    if len(sys.argv) == 1:
        path = sys.argv[0]
        subprocess.run(['/path/to/my.exe', path])
    else:
        print('Usage myscript.py <path>')

if __name__ == "__main__":
    main()
导入系统 导入子流程 def main(): 如果len(sys.argv)==1: path=sys.argv[0] subprocess.run(['/path/to/my.exe',path]) 其他: 打印('Usage myscript.py') 如果名称=“\uuuuu main\uuuuuuuu”: main()
如果我正确理解了您的问题,可以通过以下方式完成,具体取决于子流程模块:

subprocess.Popen(["/path/to/application", "/path/to/file/to/open"])
有关更多详细信息,请参阅