gpt4 book ai didi

python - 逐行重新编号

转载 作者:行者123 更新时间:2023-12-04 04:29:43 27 4
gpt4 key购买 nike

我有一个输入文本,看起来像这样:

word77 text text bla66 word78 text bla67
text bla68 word79 text bla69 word80 text
bla77 word81 text bla78 word92 text bla79 word99

我要重新编号 wordbla从 1,在每一行。

我可以对整个输入重新编号,如下所示:
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

最佳答案

您一次对整个文件进行操作( fp.read() ) - 您需要逐行进行:

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

输出:
word1 text text bla1 word2 text bla2
text bla1 word1 text bla2 word2 text
bla1 word1 text bla2 word2 text bla3 word3

关于python - 逐行重新编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61153872/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com