假设一个 python 脚本可以调用:
python myscript.py ./mycommand > myoutput.txt
如何确保myscript.py
获取./mycommand > myoutput.txt
命令行参数列表,而不是 shell 将输出管道python myscript.py ./mycommand
传输到文件?
编辑
使用引号会带来额外的问题。考虑:
import subprocess
import sys
argList = sys.argv[1].split()
subprocess.call(argList)
然后由以下方式调用:
python myscript.py 'ls -l > ls.out'
结果是
ls: cannot access >: No such file or directory
ls: cannot access ls.out: No such file or directory
动机是只有我试图运行的命令的输出应该保存在文件中。myscript.py
to的任何其他输出stdout
都不应该进入文件。看起来管道需要设置stdout
为subprocess.call()
. >
有没有办法直接使用参数列表,这样我就不必为之类的东西解析2>
它?2&>
<