Python as" perl -pe",为stdin中的每一行执行Python命令

时间:2012-09-04 08:33:37

标签: python perl sed awk

  

可能重复:
  Python equivalent to perl -pe?

有没有办法用给定的Python命令处理stdin的每一行而不用样板代码设置东西?

使用Perl,我可以做类似的事情:

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

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

注意:使用许多其他工具可以实现类似的功能,例如: sed,awk等...

3 个答案:

答案 0 :(得分:5)

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

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

这将像Perl一样自动打开文件,如果没有提供文件,则使用标准输入。将print替换为任何类型的处理。您可能需要多行才能执行任何有用的操作,但这对大多数shell来说都不是问题。

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

答案 1 :(得分:-2)

尝试-c解释器选项:

python -c "print 'cool'"

答案 2 :(得分:-2)

您可以通过执行以下命令从普通的bash shell进入交互模式: 蟒蛇