使用python

时间:2019-07-14 06:39:49

标签: python regex file split

我有一个文件,需要增加文件中的数字并保存到另一个文件中,并且它将保持递增。除了一个条件,我编写的代码绝对有效。 file2必须加1,并且如果file2中存在最后一位,则必须继续加1。

file2(输出)的最后一位仅递增一次,但需要无限递增直到执行停止

在第3次执行后,仍输出5.1:1而不是5.1:2替代方法。

import re
import os
rx = r'(?<=:)(\d*)$'
rex = r'(?<=:)(\d+)$'
with open('file1','r') as fh:
    fh_n = fh.read()
    with open('file2', 'a+') as fw:
        x = re.sub(rx , lambda x: str(int(x.group(0)) + 1) if len(x.group(1)) else "0", fh_n, 1, re.M)
        fw.seek(0, os.SEEK_SET) 

        #Modification has to be done
        if x in fw.read():
           y = re.sub(rex , lambda x: str(int(x.group(0)) + 1) , x, 1, re.M)
           fw.seek(0, os.SEEK_END)  
           fw.write(y)
        else:
           fw.write(x)

file1

firefox 5.1:
      chrome 5.0:

file2(预期输出在下面)

执行3次后:

firefox 5.1:0
      chrome 5.0:
firefox 5.1:1
      chrome 5.0:
firefox 5.1:2
      chrome 5.0:

另一种方式,

    lines = fw.readlines()
    print (int(lines[-10][-2]) + 1)

0 个答案:

没有答案