6

可能重复:
Python 等价于 perl -pe?

stdin有没有一种方法可以使用给定的 Python 命令处理每一行,而无需使用样板代码进行设置?

使用 Perl,我可以执行以下操作:

perl -pe '... command ...'

我可以用 Python 做同样的事情吗?

注意:使用许多其他工具(例如 sed、awk 等)也可以实现类似的操作...

4

2 回答 2

8

Python 在这方面不如 Perl 方便,但你可以使用 接近 Perl 的-p标志fileinput,如下所示:

python -c 'for ln in __import__("fileinput").input(): print ln.rstrip()' files...

这将像 Perl 一样自动按顺序打开文件,或者如果没有提供文件,则使用标准输入。替换print为任何类型的处理。你可能需要多行来做任何有用的事情,但这对大多数 shell 来说不是问题。

请注意,rstrip需要避免与源代码行和print语句添加的换行符重复。如果您不打印该行,则无需调用它。

于 2012-09-04T08:47:03.150 回答
-1

尝试-c解释器选项:

python -c "print 'cool'"
于 2012-09-04T08:46:18.460 回答