擅长:python、mysql、java
<p>您可以一次对整个文件进行操作(<code>fp.read()</code>)-您需要按行操作:</p>
<pre><code>with open("input.txt","w") as f:
f.write("""word77 text text bla66 word78 text bla67
text bla68 word79 text bla69 word80 text
bla77 word81 text bla78 word92 text bla79 word99""")
import re
i = 0
def replace(m):
global i
i+=1
return str(i)
with open('input.txt') as fp, open("output.txt","w") as out:
# read only one line of the file and apply the transformations
for line in fp:
i = 0
l = re.sub(r'(?<=word)(\d+)', replace, line)
i = 0
l = re.sub(r'(?<=bla)(\d+)', replace, l)
out.write(l)
with open("output.txt") as f:
print(f.read())
</code></pre>
<p>输出:</p>
<pre><code>word1 text text bla1 word2 text bla2
text bla1 word1 text bla2 word2 text
bla1 word1 text bla2 word2 text bla3 word3
</code></pre>