|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
f=open(mdfile,'w+')
f.write(re.sub(text_to_search, replacement_text, alllines, 1))
f.write(re.sub(text_to_search1, replacement_text1, alllines, 1))
f.close()
源文件27k,单1个f.write(re.sub是正常的。 先后2个文件内容就翻倍。 该怎么分别替换2个内容呢?难道先open1次,sub第一次,close;再open第2次,再sub第2个吗?:)
你的代码中有个问题,它正在将全部内容写入文件两次,每次都是一个独立的 re.sub() 修改版,这就是为什么你的文件大小翻倍了。 re.sub() 是一个全局的替换函数,它将替换所有匹配的内容,而不仅仅是第一个。
如果你要替换两个不同的内容,你可以链式地调用 re.sub() ,像这样:
f=open(mdfile,'w+')
newlines = re.sub(text_to_search, replacement_text, alllines, 1)
newlines = re.sub(text_to_search1, replacement_text1, newlines, 1)
f.write(newlines)
f.close()
在这个例子中,我首先替换了 text_to_search ,然后用得到的新的文本作为输入,再次替换 text_to_search1 。这样, f.write() 只被调用一次,所以文件只写入一次,避免了你原来的问题。
|
|