我有一个与this one相关的问题。我想执行的命令是:
program test.in > test.out
其中program
接受test.in
作为输入并输出test.out
。
import subprocess
subprocess.Popen([program] + ['test.in > test.out'])
但我得到了错误
Cannot open file 'test.in > test.out' for reading.
我也试过
subprocess.Popen([program] + 'test.in > test.out'.split())
然而这导致错误
Cannot open file `>` for reading.
如何在不使用shell=True
的情况下修改我的脚本,这会造成安全威胁?谢谢。
2条答案
按热度按时间3npbholx1#
你可以这样做,而不改变命令:
xu3bshqb2#
如果程序接受它们作为参数,那么你应该像这样遵循Popen的正常语法:
你为什么不遵守这个语法?