可能重复:
Python 等价于 perl -pe?
stdin
有没有一种方法可以使用给定的 Python 命令处理每一行,而无需使用样板代码进行设置?
使用 Perl,我可以执行以下操作:
perl -pe '... command ...'
我可以用 Python 做同样的事情吗?
注意:使用许多其他工具(例如 sed、awk 等)也可以实现类似的操作...
可能重复:
Python 等价于 perl -pe?
stdin
有没有一种方法可以使用给定的 Python 命令处理每一行,而无需使用样板代码进行设置?
使用 Perl,我可以执行以下操作:
perl -pe '... command ...'
我可以用 Python 做同样的事情吗?
注意:使用许多其他工具(例如 sed、awk 等)也可以实现类似的操作...
Python 在这方面不如 Perl 方便,但你可以使用 接近 Perl 的-p
标志fileinput
,如下所示:
python -c 'for ln in __import__("fileinput").input(): print ln.rstrip()' files...
这将像 Perl 一样自动按顺序打开文件,或者如果没有提供文件,则使用标准输入。替换print
为任何类型的处理。你可能需要多行来做任何有用的事情,但这对大多数 shell 来说不是问题。
请注意,rstrip
需要避免与源代码行和print
语句添加的换行符重复。如果您不打印该行,则无需调用它。
尝试-c
解释器选项:
python -c "print 'cool'"