如何增加文件中的最后一个数字 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
带有 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))
我在文件中有以下文本
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
带有 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))