gpt4 book ai didi

python - 如何增加文件python中的最后一个数字

转载 作者:行者123 更新时间:2023-12-01 07:40:40 25 4
gpt4 key购买 nike

我的文件中有以下文本

firefox-x 46.0:
google 5.1.0.1:
- request
- branch

我需要提取第一行的最后一个字母并增加一个版本并附加到同一文件。我的附加部分将是

    firefox-x 46.1:
google 5.1.0.1:
- request
- branch

能够提取最后一个整数,但如何更新并写入同一文件。

import re
with open('branch.txt','r') as fh:
first_line = fh.readline()
#print (first_line)
last_number = re.findall(".*(?:\D|^)(\d+)", first_line)
for i in last_number:
to_int = int(i)
#print (to_int)
next_num = (to_int +1)
print (next_num)

最佳答案

您可以使用

import re
rx = r'\d+(?=:$)'
s="""firefox-x 46.0:
google 5.1.0.1:
- request
- branch"""

print(re.sub(rx, lambda x: str(int(x.group(0)) + 1), s, 1, re.M))

输出:

firefox-x 46.1:
google 5.1.0.1:
- request
- branch

请参阅Python demo

带有 re.M 标志的 \d+(?=:$) 正则表达式将匹配后面带有 : 的 1+ 位数字 的末尾和 1 作为 count 参数传递给 re.sub只会执行一次替换。

lambda x: str(int(x.group(0)) + 1) 部分将获取第一个匹配项,将匹配的 1+ 位数字转换为 int,添加 1 到值并将其转换回字符串。

读取和写入另一个文件:

import re

rx = r'\d+(?=:$)'
with open('branch.txt', 'r') as fr:
data = fr.read()
with open('branch.out.txt', 'w') as fw:
fw.write(re.sub(rx , lambda x: str(int(x.group(0)) + 1), data, 1, re.M))

关于python - 如何增加文件python中的最后一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56735023/

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