如何将固定数字添加到文件名的整数部分?

How to add a fixed number to the integer part of a filename?

使用Python,我需要在一些文件名的整数部分加上100来重命名文件。这些文件如下所示: 0000000_6dee7e249cf3.log 其中 6dee7e249cf3 是一个随机数。最后我应该有:

0000000_6dee7e249cf3.log should change to 0000100_6dee7e249cf3.log
0000001_12b2bb88d493.log should change to 0000101_12b2bb88d493.log
etc, etc…

我可以使用以下方法打印初始文件:

initial: glob('{0:07d}_*[a-z]*'.format(NUM))

但最终文件 returns 是一个空列表:

final: glob('{0:07d}_*[a-z]*'.format(NUM+100))

此外,我无法使用 os.rename 将 initial 重命名为 final,因为它无法读取使用 globe 函数创建的列表。

使用“_”分隔符拆分文件名值,并使用这两个值重建文件名。

s = name.split('_')
n2 = str(int(s[0]) + 100)
new_name = s[0][:len(s[0]) - len(n2)] + n2 + '_' + s[1]

我已经包含了您的正则表达式搜索。看起来 glob 不处理正则表达式,但 re 可以

import os
import re
#for all files in current directory
for f in os.listdir('./'):
    #if the first 7 chars are numbers
    if re.search('[0-9]{7}',f):
        lead_int = int(f.split('_')[0])
        #if the leading integer is less than 100
        if lead_int < 100:
            # rename this file with leading integer + 100
            os.rename(f,'%07d_%s'%(lead_int + 100,f.split('_')[-1]))