我将python脚本放在一起,它将读取字符串“ BatchSequence =“ NUMBER INCREMENT HERE”,然后返回整数。我如何找到某个整数并将其余的整数加1,但在整数之前保留整数呢? 3跳到5。我希望它跳到3、4、5。
另外, 一旦我弄清楚了这个脚本。如何用新的脚本编号替换原始文本文件的编号?我需要写一个新文件吗?
我尝试将数字增加一个,但它从头开始。
我尝试过的代码:
import re
file = '\\\MyDataNEE\\user$\\bxt058y\\Desktop\\75736.oxi.error'
counter = 0
for line in open(file):
match = re.search('BatchSequence="(\d+)"', line)
if match:
print(int(match.group(1)) + 1)
原始代码:
import re
file = 'FILENAME HERE'
counter = 0
for line in open(file):
match = re.search('BatchSequence="(\d+)"', line)
if match:
print(match.group(1))
当前:
BatchSequence="1"
BatchSequence="2"
BatchSequence="3"
BatchSequence="5"
BatchSequence="6"
BatchSequence="7"
BatchSequence="8"
新输出应为:
BatchSequence="1"
BatchSequence="2"
BatchSequence="3"
BatchSequence="4"
BatchSequence="5"
BatchSequence="6"
BatchSequence="7"
答案 0 :(得分:0)
我对这个问题的看法:
txt = '''BatchSequence="1"
BatchSequence="2"
BatchSequence="3"
BatchSequence="5"
BatchSequence="6"
BatchSequence="7"
BatchSequence="8"'''
import re
def fn(my_number):
val = yield
while True:
val = yield str(val) if val < my_number else str(val-1)
f = fn(4)
next(f)
s = re.sub(r'BatchSequence="(\d+)"', lambda g: 'BatchSequence="' + f.send(int(g.group(1))) + '"', txt)
print(s)
打印:
BatchSequence="1"
BatchSequence="2"
BatchSequence="3"
BatchSequence="4"
BatchSequence="5"
BatchSequence="6"
BatchSequence="7"
函数fn(my_number)
将返回相同的值,直到达到my_number
,然后将值减1。