如何在windows中使用python打开javascript,让WScript对其进行解释,并将命令行参数传递给它

如何在windows中使用python打开javascript,让WScript对其进行解释,并将命令行参数传递给它,python,windows,process,popen,Python,Windows,Process,Popen,我有一个保存文件路径和命令行参数的格式,当这些文件在Windows中打开时可以传递给它们 例如,我可能有一个指向javascript文件的路径和一个传递该文件的命令行参数列表,在这种情况下,我希望以与os.startfile相同的方式打开javascript文件,并将命令行参数传递给它-由于参数保存为字符串,我希望将其作为字符串传递,但如果需要,我也可以将其作为列表传递 我不太确定应该使用什么,因为a.js不是可执行文件,因此会在Popen中引发错误,而startfile只将动词作为第二个命令

我有一个保存文件路径和命令行参数的格式,当这些文件在Windows中打开时可以传递给它们

例如,我可能有一个指向javascript文件的路径和一个传递该文件的命令行参数列表,在这种情况下,我希望以与os.startfile相同的方式打开javascript文件,并将命令行参数传递给它-由于参数保存为字符串,我希望将其作为字符串传递,但如果需要,我也可以将其作为列表传递

我不太确定应该使用什么,因为a.js不是可执行文件,因此会在Popen中引发错误,而startfile只将动词作为第二个命令


此问题可以扩展到需要打开的任意数量的文件扩展名,并传递命令行参数,但在打开时将由真正的可执行文件解释

如果windows已注册.js扩展名以使用wscript打开,则可以通过将该决定权留给windows shell来完成

您可以使用执行与在命令提示下键入时相同的操作,例如:

import os
os.system('example.js arg1 arg2')
您还可以使用
start
命令:

os.system('start example.js arg1 arg2') 
如果您需要更多的功能,例如获取结果,您可以使用,但请确保使用
shell=True
(以便shell可以调用正确的应用程序):

(尽管这可能需要cscript而不是wscript)


如果Windows没有任何用于打开文件的默认应用程序(或者如果不是您想要的应用程序),那么,您当然可以自己打开…

在程序之外的Windows中如何打开
.js
文件?我希望.js文件由Windows中的默认解释器WScript.exe或Cscript.exe打开,这就是调用open动词时发生的情况,例如双击文件系统中的文件。显然,某处需要知道解释器是什么,但我更愿意使用更高级别的解决方案,而不是实现“某处”。例如,如果我打开一个.py程序并从WScript向其传递一个命令行参数,我就可以这样做,而不必知道.py扩展名需要由python.exe打开,因为WScript为我负责。
from subprocess import Popen
p = Popen('example.js arg1 arg2', shell=True)
# you can also do pass the filename and arguments separately:
# p = Popen(['example.js', 'arg1', 'arg2'], shell=True)
stdoutdata, stderrdata = p.communicate()