我试图运行
script.pl < input > output
在python中。我试过这个:
subprocess.check_call(["script.pl","<","input",">","output"])
我猜这不是正确的方法。 任何帮助将不胜感激!
答案 0 :(得分:3)
您想执行shell命令
script.pl < input > output # 0 args, redirects stdin and stdout
但您正在执行shell命令
script.pl "<" input ">" output # 4 args, and no redirections
如果要运行shell命令,则需要运行shell。
subprocess.check_call(["/bin/sh", "-c", "script.pl < input > output"])
-or-
subprocess.check_call("script.pl < input > output", shell=True)
如果你完全避免运行shell,那将是最好的。
in_fh = open('input', 'r')
out_fh = open('output', 'w')
subprocess.check_call("script.pl", stdin=in_fh, stdout=out_fh)
答案 1 :(得分:0)
保持简单,
import os
os.system("script.pl < input > output")