Python脚本无法识别管道符号|

时间:2015-08-31 03:53:05

标签: python-2.7

我想执行linux命令cksum,将其管道切割以提取第一个字段: cksum test_file.txt | cut -d'' - f -1 但Python无法识别PIPE符号“|”

from subprocess import Popen, PIPE
output = 
Popen(["cksum", "test_file.txt", "| cut -d ' ' -f 1"],stdout=PIPE).communicate()[0]    
print output

输出:

MacBook-Pro:prompt$ python cut_output.py

cksum: | cut -d ' ' -f 1: No such file or directory
3691605422 51 test_file.txt

MacBook-Pro:prompt$ 

任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

添加`shell = True'。但是,建议不要这样做,因为如果Popen命令使用用户输入,它可能是一个主要的安全风险。有关风险here

的更多信息
output = Popen(["cksum", "test_file.txt", "| cut -d ' ' -f 1"],shell=True,stdout=PIPE).communicate()[0]