如何使用正则表达式来解析整个文件并确定找到的匹配,而不是逐行读取?

时间:2013-02-26 03:53:29

标签: python

而不是阅读每一行我们只是在文件中搜索字符串并替换它...我正在尝试但无法知道该怎么做?

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()

2 个答案:

答案 0 :(得分:0)

这是一个你可以适应的例子,用文件的'set :: windows32'替换'(address_num)'的每个序列:

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),

答案 1 :(得分:0)

这不是非常有效,但我想这正是你要找的东西:

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

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