繁体   English   中英

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

[英]How to increment last number in file python

我在文件中有以下文本

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 演示

\\d+(?=:$)的正则表达式与re.M标志将匹配1+位所遵循与:线的端部和1作为计数参数传递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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM