0

相反,在阅读每一行时,我们不能只在文件中搜索字符串并替换它......我正在尝试但无法知道如何做?

file = open(C:\\path.txt,"r+")
lines = file.readlines()
replaceDone=0
file.seek(0)
newString="set:: windows32\n"
for l in lines: 
     if (re.search("(address_num)",l,re.I) replaceDone==0:
        try:
            file.write(l.replace(l,newString))
            replaceDone=1
        except IOError:
             file.close()
4

2 回答 2

0

这是一个您可以修改的示例,它将文件的每个序列 '(address_num)' 替换为 'set:: windows32':

import fileinput
import re

for line in fileinput.input('/home/jon/data.txt', inplace=True):
    print re.sub('address_num', 'set:: windows32', line, flags=re.I),
于 2013-02-26T04:04:37.637 回答
0

这不是很有效的内存,但我想这是你正在寻找的:

import re
text = open(file_path, 'r').read()
open(file_path, 'w').write(re.sub(old_string, new_string, text))

读取整个文件,替换并写回整个文件。

于 2013-02-26T04:42:54.257 回答