如何将固定数字添加到文件名的整数部分?
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]))
使用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]))