Python将变量传递给子流程.Popen

2024-09-30 16:34:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本(gcin.py)这给了我一个遥控器的状态,0=向下1=向上。在

/usr/local/bin/gcin.py -l 2010
0

我试图在另一个python脚本中运行这个脚本(GetCut.py)正在使用子进程,但无法使其识别系统argv[1] 变量。在

^{pr2}$

给我这个错误:

Traceback (most recent call last):
  File "GetCut.py", line 4, in <module>
    p = subprocess.Popen("python /usr/local/bin/gcin.py","-l", lId, stdout=subprocess.PIPE, shell=True)
  File "/usr/lib64/python2.7/subprocess.py", line 660, in __init__
    raise TypeError("bufsize must be an integer")
TypeError: bufsize must be an integer

我很感激你的帮助。在


Tags: inpy脚本binusrlocallinebe
1条回答
网友
1楼 · 发布于 2024-09-30 16:34:39

您需要将参数与列表一起传递给子流程。您也可能不想使用shell=True。在

subprocess.Popen([sys.executable, "/usr/local/bin/gcin.py", "-l", str(lId)], stdout=subprocess.PIPE)

如果只需要程序的输出,可以使用check_output

subprocess.check_output([sys.executable, "/usr/local/bin/gcin.py", "-l", str(lId)])

相关问题 更多 >