如何在Windows中使用Python打开JavaScript,使用WScript解释并传递命令行参数

0 投票
1 回答
629 浏览
提问于 2025-04-16 05:47

我有一个格式,用来保存文件的路径和在Windows中打开这些文件时需要传递的命令行参数。

比如,我可能有一个指向JavaScript文件的路径,还有一系列要传给它的命令行参数。在这种情况下,我想用类似os.startfile的方式打开这个JavaScript文件,并把命令行参数传给它。因为这些参数是以字符串的形式保存的,我希望能以字符串的方式传递,但如果需要的话,我也可以把它们作为列表传递。

我不太确定该用什么方法,因为.js文件并不是可执行文件,所以在使用Popen时会出错,而startfile的第二个命令只接受动词。

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

1 个回答

2

如果Windows已经把.js文件的扩展名设置为用wscript打开,你可以这样做,让Windows自己来决定。

你可以直接使用 os.system(),这就像你在命令提示符下输入命令一样,比如:

import os
os.system('example.js arg1 arg2')

你也可以使用 start 命令:

os.system('start example.js arg1 arg2') 

如果你需要更强大的功能,比如获取结果,你可以使用 subprocess.Popen(),但要确保加上 shell=True(这样shell才能调用正确的应用程序):

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()

(不过这可能需要用cscript而不是wscript)

如果Windows没有默认的应用程序来打开这个文件(或者不是你想要的那个),那就得自己想办法了……

撰写回答