问题描述
我在一个目录中有一堆输出文件,我正在使用 awk 从中提取信息。一旦 awk 运行完毕,并且我已将信息整齐地写入 data.txt
文件中,我将调用 pandas 并创建数据的数据框。
我的问题是,当我从 awk 获取我的信息时,我是否可以立即将其放入一个 numpy 数组/列表中,使用 subprocess 模块或其他什么?
解决方法
最后,您可以使用 sys 中的 |
将 awk
的 (python
) 输出管道输送到 sys.stdin.read
。考虑以下简单示例 countdigits.py
,它在整个输出中打印位数
import sys
data = sys.stdin.read()
digits = [i for i in data if i.isdigit()]
print(len(digits))
和 file.txt
内容是:
1
2
3
然后
awk '//' file.txt | python countdigits.py
会输出
3
和
awk '{print $0*100}' file.txt | python countdigits.py
会输出
9
您可以使用 |
将任何文本从 awk
传输到 python
,而无需创建文本文件。