首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有等同于` `perl -pi -e`的Python?

有没有等同于` `perl -pi -e`的Python?
EN

Stack Overflow用户
提问于 2008-12-14 22:57:33
回答 5查看 3.1K关注 0票数 17

我知道python -c '<code>',但我想知道是否有比perl -pi -e '<code>'更优雅的python。我仍然使用它来做一些事情,比如在整个目录中查找和替换(对子目录使用perl -pi -e s/foo/bar/g *,甚至是find . | xargs perl -pi -e s/foo/bar/g )。

我实际上觉得是Perl Perl (自由形式的Tim Toady-ness)让perl -pi -e工作得这么好,而使用Python时,你必须做一些类似于导入re模块,创建re实例,然后捕获stdin的事情,但也许有一个Python快捷方式可以做所有这些事情,而我错过了它(非常怀念它)……

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-12-14 23:53:48

来自'python -h‘的命令行用法当然强烈地表明没有这样的等价物。Perl倾向于广泛地使用'$_‘(你的例子隐含地使用了它),我不认为Python支持任何类似的概念,因此使得Python与Perl一行程序的等价物变得更加困难。

票数 10
EN

Stack Overflow用户

发布于 2013-01-21 05:45:30

我知道这已经晚了几年了,但是我最近发现了一个非常好的工具,叫做pyp,它可以完全满足您的要求。

我认为你的命令应该是:

pyp "p.replace('foo','bar')"
票数 9
EN

Stack Overflow用户

发布于 2008-12-15 01:23:27

我认为perl更适合于这种动态脚本。如果您想要快速运行的一次性脚本功能,我建议您坚持使用perl、awk、sed和标准的unix命令行工具。

但是如果你对使用python感兴趣,我会使用optparse来编写我自己的命令行工具,并推荐它。optparse提供了一个干净易用的命令行选项解析器,带有内置的帮助生成功能。

下面是一个示例:

def myfunc(filename, use_versbose):
   # function code

if __name__ == '__main__':
    from optparse import OptionParser

    parser = OptionParser()
    parser.add_option("-f", "--file", dest="filename",
                      help="write report to FILE", metavar="FILE")
    parser.add_option("-q", "--quiet",
                      action="store_false", dest="verbose", default=True,
                      help="don't print status messages to stdout")

    (options, args) = parser.parse_args()

    if options.filename:
        myfunc(options.filename, options.verbose)

    else:
        print 'ERROR -- Necessary command line options not given!'
        print parser.print_help()

parser.print_help()生成以下输出,并在命令行给出-h或--help时自动显示:

usage: <yourscript> [options]

options:
  -h, --help            show this help message and exit
  -f FILE, --file=FILE  write report to FILE
  -q, --quiet           don't print status messages to stdout
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/367115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档