我有一个如下所示的输入文本:
word77 text text bla66 word78 text bla67
text bla68 word79 text bla69 word80 text
bla77 word81 text bla78 word92 text bla79 word99
我必须在每一行中从1开始重新编号word
和bla
我可以将整个输入重新编号,如下所示:
word1 text text bla1 word2 text bla2
text bla3 word3 text bla4 word4 text
bla5 word5 text bla6 word6 text bla7 word7
上述各项的代码:
import re
def replace(m): global i; i+=1; return str(i);
fp = open('input.txt', 'r').read()
i = 0
fp = re.sub(r'(?<=word)(\d+)', replace, fp)
i = 0
fp = re.sub(r'(?<=bla)(\d+)', replace, fp)
#open('sample.txt', 'wb').write(fp)
print fp
理想情况下,结果应如下所示:
word1 text text bla1 word2 text bla2
text bla1 word1 text bla2 word2 text
bla1 word2 text bla3 word3 text bla4 word4
我们可以创建一个更通用的函数,对任意数量的单词重新编号。每个要替换的单词都有自己的关联计数器,我们使用
re.sub
一次性完成所有操作:输出:
您可以一次对整个文件进行操作(
fp.read()
)-您需要按行操作:输出:
相关问题 更多 >
编程相关推荐