免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 10444 | 回复: 24
打印 上一主题 下一主题

请问:使用python如何轻松实现替换多个文件中的字串 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-21 09:44 |只看该作者 |倒序浏览
python操作文件起来是不是很难实现这样的操作呢?
谢谢。

论坛徽章:
0
2 [报告]
发表于 2006-11-21 12:17 |只看该作者
不太麻烦。先把文件读出来,然后如果没有正则匹配,可以考虑简单的 str.replace(a, b)就可以了,然后再写回去即可。

论坛徽章:
0
3 [报告]
发表于 2006-11-21 13:17 |只看该作者
这跟我想的类似

;)

又没有更简单的

如果那个文件很大,而且又有多处匹配~~

论坛徽章:
0
4 [报告]
发表于 2006-11-21 13:19 |只看该作者
replace可以一次替换所有的。文件大的话那就一边读一边写好了。可以考虑以行为单位处理。

论坛徽章:
0
5 [报告]
发表于 2006-11-21 14:37 |只看该作者
原帖由 limodou 于 2006-11-21 13:19 发表
replace可以一次替换所有的。文件大的话那就一边读一边写好了。可以考虑以行为单位处理。


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

而且如果按行为单位处理,那么为了照顾到行首行尾的匹配,就必须要包括上一行的行末。

论坛徽章:
0
6 [报告]
发表于 2006-11-21 16:09 |只看该作者
有正则式的话要麻烦一些,如果不存在跨行的情况还好,如果有跨行的情况,你就是包含了上一行也未必可行。建议不要考虑太复杂。能够先解决你的问题就好了。当遇到不满足情况时再修改吧。

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

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

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

最近学python,想写个脚本

;)

论坛徽章:
0
8 [报告]
发表于 2006-11-22 22:51 |只看该作者
有PERL实现这个可能会容易些

论坛徽章:
0
9 [报告]
发表于 2006-11-23 08:42 |只看该作者
原帖由 alexru 于 2006-11-22 22:51 发表
有PERL实现这个可能会容易些

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

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

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

由于python是面向对象的,我查了他的File对象中也没有相关的方法。

论坛徽章:
0
10 [报告]
发表于 2006-11-23 09:00 |只看该作者
你相查那个没有?python一样有强大的正则表达,文本处理也非常简洁。就是使用perl对于多行的处理,算法应该没有什么区别,只是语言上的差别而已。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP