【问题标题】:Is it possible to send data from awk to python without writing files to disk?是否可以在不将文件写入磁盘的情况下将数据从 awk 发送到 python?
【发布时间】:2021-04-23 11:53:27
【问题描述】:

我在一个目录中有一堆输出文件,我正在使用 awk 从它们中提取信息。一旦 awk 运行正常,并且我已经将我的信息整齐地写入 data.txt 文件中,我调用 pandas 并创建我的数据的数据框。

我的问题是,当我从 awk 获取我的信息时,我可以使用 subprocess 模块或其他方式立即将其放入 numpy 数组/列表中吗?

【问题讨论】:

  • 是的,您可以使用 e。 G。 subprocess.check_output() 运行 awk。

标签: python awk text-processing python-textprocessing


【解决方案1】:

您可以在最后使用来自syssys.stdin.readawk 的输出(|)通过管道传输到python。考虑以下简单示例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,而无需创建文本文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    相关资源
    最近更新 更多