我在命令行中执行的操作:
cat file1 file2 file3 > myfile
我想用python做什么:
import subprocess, shlex
my_cmd = 'cat file1 file2 file3 > myfile'
args = shlex.split(my_cmd)
subprocess.call(args) # spits the output in the window i call my python program
在子进程中执行这样的命令不会给您任何输出。也许您想在不使用> myfile将cat file1 file2 file3的输出重定向到python的情况下运行它?
—
PoltoS 2011年
@PoltoS我想加入一些文件,然后处理生成的文件。我以为使用猫是最简单的选择。有更好的/ pythonic的方法吗?
—
catatemypythoncode
os.sendfile()
基于解决方案的方法是可能的,请参阅在python中重现unix cat命令
我认为输出重定向('>'或'>>')在子进程中不起作用.Popen(至少在Python 2.7中)(在shell = True模式下)在此示例中,正如其他人指出的那样,您可以解决通过不使用重定向,但是在其他情况下重定向很有用。如果子流程中不支持重定向或管道。应记录Popen(和/或在修复此问题之前不建议使用os.system())
—
Ribo