Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 Python脚本无法识别管道符号|_Python 2.7 - Fatal编程技术网

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

Python 2.7 Python脚本无法识别管道符号|,python-2.7,Python 2.7,我想执行linux命令cksum,将其管道切割以提取第一个字段: cksum test_file.txt | cut-d'-f-1 但是Python不识别管道符号“|” 输出: 任何建议都将不胜感激。添加“shell=True”。但是,建议不要这样做,因为如果Popen命令使用用户输入,则可能会带来严重的安全风险。关于风险的更多信息 当我添加“shell=True”@user1972031时程序挂起真的吗?我没有访问OSX的权限,但它在Windows上运行良好。尝试执行简单的ls命令,看看它

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



输出:
任何建议都将不胜感激。

添加“shell=True”。但是,建议不要这样做,因为如果Popen命令使用用户输入,则可能会带来严重的安全风险。关于风险的更多信息


当我添加“shell=True”@user1972031时程序挂起真的吗?我没有访问OSX的权限,但它在Windows上运行良好。尝试执行简单的
ls
命令,看看它是否有效。@user1972031验证
test\u file.txt
是否确实存在。因为如果它不存在,您的代码就不会检查stderr,我认为这就是系统冻结的原因
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$ 
output = Popen(["cksum", "test_file.txt", "| cut -d ' ' -f 1"],shell=True,stdout=PIPE).communicate()[0]