我对如何完成这项工作感到有些困惑。
我需要做的是从 Python 脚本中调用一个外部命令,该命令将几个参数和一个文件名作为输入。
让我们调用我调用的可执行文件“prog”,输入文件“file”,所以命令行(在 Bash 终端中)如下所示:
$ prog --{arg1} {arg2} < {file}
上面的 {arg1} 是一个字符串,而 {arg2} 是一个整数。
如果我使用以下内容:
#!/usr/bin/python
import subprocess as sbp
sbp.call(["prog","--{arg1}","{arg2}","<","{file}"])
结果是“prog”的错误输出,它声称输入丢失 {arg2}
以下会产生一个有趣的错误:
#!/usr/bin/python
import subprocess as sbp
sbp.call(["prog","--{arg1} {arg2} < {file}"])
所有空格似乎都已从第二个字符串中删除,并在最后附加等号:
command not found --{arg1}{arg2}<{file}=
这种行为对我来说似乎没有任何意义,而且从网上找到的 Python 手册页中也没有什么可以参考的。请注意,将 sbp.call 替换为 sbp.Popen 并不能解决问题。