我查找了下论坛里也有很多类似功能的东东,但总感觉所有软件也好,代码也罢,都是自己做的最合意!
若一个文件夹里有很多个数字开头命名的文件如:0、1、2、……、10、11、……100、101等,排名的顺序比较乱,不会如前面的顺序排列;
大多数情况会如下:
0AAAA.txt
1AAAA.txt
10AAAA.txt
100AAA.txt
2AAAA.txt
20AAAA.txt
下面的程序目的就是把前面的数字提取出来,然后再在前面加零,结果将是:
0000AAAA.txt
0001AAAA.txt
0002AAAA.txt
0010AAAA.txt
0020AAAA.txt
0100AAAA.txt
[Python] 纯文本查看 复制代码 import osimport re
def rename_files_in_directory(directory):
number_pattern = re.compile(r'\d+')
for filename in os.listdir(directory):
print(filename)
fa = number_pattern.findall(filename) # 查找文件名中的数字
if len(fa) >0:
_new_f = fa[0].zfill(4) # 左边用零填充数字到4位数
_t = filename.partition(fa[0]) # 用查找到的数字来对文件名分隔
new_filename = _new_f + _t[-1] # 用新的数字加上后面的内容来作为文件名
old_path = os.path.join(directory, filename)
new_path = os.path.join(directory, new_filename)
os.rename(old_path, new_path)
# print(old_path, new_path)
# 使用示例
directory = "/data/home/greatwall/Documents" # 替换为你的目录路径
rename_files_in_directory(directory) |