我知道python -c '<code>'
,但我想知道是否有一种更优雅的python等价于perl -pi -e '<code>'
。在整个目录中查找和替换(对于子目录,perl -pi -e s/foo/bar/g *
甚至是{})我仍然使用它。在
实际上,我觉得Perl Perl(自由格式Tim Toady ness)正是使perl -pi -e
工作得如此出色的原因,而使用Python,您必须按照导入re模块、创建re实例然后捕获stdin的方式来做些事情,但可能有一个Python快捷方式可以完成所有这些,我错过了它(非常怀念它)。。。在
Tags:
来自“
python -h
”的命令行用法显然强烈地表明没有这样的等价物。Perl倾向于广泛使用$_
(您的示例隐式地使用它),而且我认为Python不支持任何类似的概念,从而使Perl一行程序的Python等价物更加困难。在在Python中编写一个等价于-pi的代码并不难。在
给自己写一个方便的模块,里面有你真正喜欢的-p和-i特性。我们称之为
pypi.py
。使用
python -c 'import pypi; pypi.subs("this","that")'
您可以用fileinput模块实现basic-p循环。在
您将有一个函数
subs
,它实现了打开文件、保存备份副本和在每一行执行替换的基本“-i”算法。在有一些像这样的activestate食谱。以下是一些:
不是内置的。但不难写。而且一旦写出来就很容易定制。在
我知道这已经晚了几年,但我最近 找到了一个非常好的工具,叫做pyp,它可以 正是你所要求的。在
我认为你的命令应该是:
相关问题 更多 >
编程相关推荐