gpt4 book ai didi

python - Python 可以像 sed、awk 和(甚至)perl 一样用作命令行过滤器吗?

转载 作者:行者123 更新时间:2023-12-01 00:23:42 24 4
gpt4 key购买 nike

是否有一个 Python 习惯用法或 cmdline 标志,使其能够处理文件或标准输入中的行,类似于这些示例(输入是 .csv 文件;您想要为后两个选择和操作特定列,大概是数字列) ):

awk -F',' '{print $1, $3, $1+$3}' foo.csv
perl -F',' -ane '{print $F[0], $F[2], $F[0]+$F[2]."\n"}' foo.csv

人们可以使用条件和正则表达式做很多聪明的事情,但我只是想说明基本想法。有没有什么方法可以在 Python 中执行此操作,而无需显式打开文件、分隔记录和字段? Python 中的一些简短的示例(如果可能的话)会非常有帮助:

python  ???  foo.csv

...不要过分强调:-)。

最佳答案

与 awk 和 Perl 不同,Python 不提供打开参数中指定的文件并迭代文件中的行以实现快速单行的选项。

相反,您可以将输入文件的内容重定向到 Python 的标准输入,并执行如下所示的单行代码:

python -c 'for a, _, b in (map(int, l.split(",")) for l in __import__("sys").stdin): print(a, b, a + b)' < foo.csv

关于python - Python 可以像 sed、awk 和(甚至)perl 一样用作命令行过滤器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58775274/

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