请问:使用python如何轻松实现替换多个文件中的字串

请问:使用python如何轻松实现替换多个文件中的字串

python操作文件起来是不是很难实现这样的操作呢?
谢谢。
不太麻烦。先把文件读出来,然后如果没有正则匹配,可以考虑简单的 str.replace(a, b)就可以了,然后再写回去即可。
这跟我想的类似

;)

又没有更简单的

如果那个文件很大,而且又有多处匹配~~
replace可以一次替换所有的。文件大的话那就一边读一边写好了。可以考虑以行为单位处理。


QUOTE:
原帖由 limodou 于 2006-11-21 13:19 发表
replace可以一次替换所有的。文件大的话那就一边读一边写好了。可以考虑以行为单位处理。

我现在的情况是,1 有正则匹配, 2 要考虑文件大的情况(其实也是多个文件,不过这个我自己循环就好了) 3 有些文件名也要批量修改。

而且如果按行为单位处理,那么为了照顾到行首行尾的匹配,就必须要包括上一行的行末。
有正则式的话要麻烦一些,如果不存在跨行的情况还好,如果有跨行的情况,你就是包含了上一行也未必可行。建议不要考虑太复杂。能够先解决你的问题就好了。当遇到不满足情况时再修改吧。


QUOTE:
原帖由 limodou 于 2006-11-21 16:09 发表
有正则式的话要麻烦一些,如果不存在跨行的情况还好,如果有跨行的情况,你就是包含了上一行也未必可行。建议不要考虑太复杂。能够先解决你的问题就好了。当遇到不满足情况时再修改吧。

我现在的问题就已经包括了这些情况了。

呵呵,以前是用shell写的,可以很简单的实现。

最近学python,想写个脚本

;)
有PERL实现这个可能会容易些


QUOTE:
原帖由 alexru 于 2006-11-22 22:51 发表
有PERL实现这个可能会容易些

恩,perl好像在文件处理方面很方便。

我查了很久的python文档以及上网搜索资料,都没有看到python关于这方面的资料。

我在想是不是我没有找到。

由于python是面向对象的,我查了他的File对象中也没有相关的方法。
你相查那个没有?python一样有强大的正则表达,文本处理也非常简洁。就是使用perl对于多行的处理,算法应该没有什么区别,只是语言上的差别而已。