【问题标题】:Python as "perl -pe", execute Python command for every line in stdin [duplicate]Python作为“perl -pe”,为stdin中的每一行执行Python命令[重复]
【发布时间】:2012-08-28 21:15:51
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: python perl sed awk


    【解决方案1】:

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

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

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

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

    【讨论】:

    【解决方案2】:

    试试-c解释器选项:

    python -c "print 'cool'"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      相关资源
      最近更新 更多