gpt4 book ai didi

python - 在 Python 中使用管道执行 shell 命令

转载 作者:太空宇宙 更新时间:2023-11-04 08:45:26 25 4
gpt4 key购买 nike

我是 Python 的新手,试过谷歌搜索,但没有帮助..
我需要在管道中调用此类命令(从 mailq 获取最早的待处理邮件):

mailq |grep "^[A-F0-9]" |sort -k5n -k6n |head -n 1

该命令在 shell 中有效。

我在 Python 中编写了以下内容:

 p = subprocess.Popen( 'mailq |grep \"^[A-F0-9]\" |sort -k5n -k6n |head -n 1', shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
response = p.communicate()[0]

但是我得到这样的输出:

sort: write failed: standard output: Broken pipe\nsort: write error\n

想知道是什么导致了这样的错误?

最佳答案

我认为这应该可行:

p = subprocess.Popen( 'mailq |grep \"^[A-F0-9]\" |sort -k5n -k6n |head -n 1', shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
response = p.stdout.readlines(-1)[0]
print response

打印响应的第一行

关于python - 在 Python 中使用管道执行 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41238273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com