1

使用 awk 很容易在 bash 终端中提取一列数据。

awk '{print $1}' 

我在 python 脚本中执行此操作,我使用 bash 序列来提取我感兴趣的数据

os.system(" qstat | awk '{print $1}' ")

如果我在特定上下文中调用它,我会得到一列数字。我想将所有这些数字加载到 python 列表中。这可以轻松完成吗?

4

2 回答 2

4

使用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
于 2013-09-29T01:54:25.640 回答
1

将 awk 的输出通过管道传输到 Python 脚本。

$ awk '{print $1}' input.txt | python script.py

要从 Python 中的管道读取,请使用 sys.stdin:

import sys
lines = sys.stdin.readlines()
于 2013-09-29T01:34:32.063 回答