gpt4 book ai didi

python - 如何在 python 中模拟 awk 来实现多行输出?

转载 作者:行者123 更新时间:2023-12-01 04:50:57 31 4
gpt4 key购买 nike

我习惯使用 awk 从文件中检索列。

我现在需要在 python 中做类似的事情。目前我使用子进程并将结果保存在变量中。

是否可以在 python 中运行类似于 awk 的东西,而无需编写大量代码?我正在看 split ;但我不明白你如何解析多行。

我的输入类似于简单的 ls -la 或 netstat -r。我想获得第三列,这样我就可以做我想做的事情

awk '{print $3}'

来源示例:

a    b    c    d    e
1 2 4 5 2
X Y Z S R

我能想到的最短的方法是对每一行进行循环分割,然后将每一行分割成单个字符串,打印字符串[2]。但我不知道如何以最简单、最短的方式写这个;只要在子进程中编写 awk 命令即可。

最佳答案

在 bash 中,使用 pythonpy

rtb@bartek-laptop ~ $ cat tmp
a b c d e
1 2 4 5 2
X Y Z S R
rtb@bartek-laptop ~ $ cat tmp | py -x "x.split()[2]"
c
4
Z

或者在脚本中

with open('tmp') as f:
result = [line.split()[2] for line in f]
# now result contains list ['c', '4', 'Z']

关于python - 如何在 python 中模拟 awk 来实现多行输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28494620/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com