【发布时间】:2016-01-27 22:31:25
【问题描述】:
我正在尝试使用 pipe 和 head 命令过滤掉 /proc/meminfo 的前 3 行。
所以基本上我需要在 Python 中运行它:
cat /proc/meminfo | head -3
我在我的代码中使用以下行:
subprocess.call(["cat", "/proc/meminfo", "|", "head", "-3"])
虽然只使用 subprocess.call(["cat", "/proc/meminfo"]) 我得到了整个列表,但我只对前 3 行感兴趣。
使用上面的命令给我以下错误:
cat: invalid option -- '3'
Try `cat --help' for more information.
有什么建议吗?
【问题讨论】:
-
管道由shell提供,因此您失败了。你可以试试 subprocess.call(["/bin/bash", "-c", "/bin/cat /proc/meminfo | /usr/bin/head -3"])
-
没有必要为了读取文件而创建子进程。请参阅下面的解决方案。
标签: python linux command subprocess call