使用 awk 很容易在 bash 终端中提取一列数据。
awk '{print $1}'
我在 python 脚本中执行此操作,我使用 bash 序列来提取我感兴趣的数据
os.system(" qstat | awk '{print $1}' ")
如果我在特定上下文中调用它,我会得到一列数字。我想将所有这些数字加载到 python 列表中。这可以轻松完成吗?
使用subprocess
代替os.system()
:
import subprocess
proc = subprocess.Popen('ls | awk "{print $1}"', shell=True, stdout=subprocess.PIPE)
stdout_value = proc.communicate()[0]
for item in stdout_value.split('\n'):
print item
将 awk 的输出通过管道传输到 Python 脚本。
$ awk '{print $1}' input.txt | python script.py
要从 Python 中的管道读取,请使用 sys.stdin:
import sys
lines = sys.stdin.readlines()