【发布时间】:2018-11-01 21:31:51
【问题描述】:
当通过终端运行以下命令时,它给出了正确的输出,即不包括顶部的 6 行,显示 data.out 的剩余行。
tail -n +6 data.out
但是当通过subprocess.Popen 处理相同的命令时,如下代码所示:
fin = open('data.out')
fout = file('data1.out','w')
line = 6
lineno = "-n +" + str(line)
p2 = subprocess.Popen(["tail",lineno], stdin=fin, stdout=fout)
errcode = p2.wait()
fin.close()
fout.close()
这是在 data1.out 文件中存储data.out 的最后 6 行,这是不正确的。这是存储tail -n 6 data.out 的输出,而不是给定和预期的tail -n +6 data.out
【问题讨论】:
标签: python subprocess pipe popen