你好,我注意到你正在尝试通过一个递增的数字来修改文件中的某些值。但是目前代码中存在一个问题:每次调用number()
函数时,全局变量num
都会递增,因此在替换所有行的过程中,最后得到的结果并不是预期的。
为了修复这个问题,你需要确保在每次替换操作前更新num
的值,而不是在整个过程中不断递增:
import re
import glob
import os
filename = "myfile.txt"
start_num = 10 # 设置起始值为10
def get_next_number():
global start_num
num = start_num
start_num += 1
return str(num)
with open(filename, "r") as f:
contents = f.read()
# 从1到10依次替换
for i in range(1, 11):
next_num = get_next_number()
pattern = rf'^{i}'
contents = re.sub(pattern, next_num, contents, flags=re.MULTILINE)
with open(filename, "w") as f:
f.write(contents)
现在,当你运行这段代码时,你应该能得到期望的结果:
10
11
12
13
14
15
16
17
18
19