如何在Python中运行带参数的应用程序?

abc*_*def 10 python process command-line-arguments python-3.x

我需要运行一个应用程序(二进制文件)并使用Python代码传递参数.一些参数表示在Python文件处理期间获得的字符串

for i in range ( len ( files ) ) :
    subprocess.call(["test.exe", files[i]]) //How to pass the argument files[i]
Run Code Online (Sandbox Code Playgroud)

谢谢...

更新的问题:


也许我不理解在Python 3中传递参数.没有参数的代码运行正常

args = ['test. exe']
subprocess.call(args)
Run Code Online (Sandbox Code Playgroud)

但是带参数的代码会导致错误:

args = ['test. exe']
subprocess.call(args, '-f')  //Error
Run Code Online (Sandbox Code Playgroud)

错误:

Error File "C:\Python32\lib\subprocess.py", line 467, in call
return Popen(*popenargs, **kwargs).wait()
File "C:\Python32\lib\subprocess.py", line 652, in __init__
raise TypeError("bufsize must be an integer")
TypeError: bufsize must be an integer
Run Code Online (Sandbox Code Playgroud)

Win*_*ert 17

args = ['test. exe']
subprocess.call(args, '-f')  //Error
Run Code Online (Sandbox Code Playgroud)

应该:

args = ['test.exe', '-f']
subprocess.call(args) 
Run Code Online (Sandbox Code Playgroud)

命令行参数应该都在subprocess.call的第一个参数的单个列表中.调用的第二个参数是bufsize,它应该是一个整数(因此你得到错误的原因)


agf*_*agf 2

您需要做的就是将其包含在参数列表中,而不是作为单独的参数:

subprocess.call(["test.exe", files[i]])
Run Code Online (Sandbox Code Playgroud)