更改文件夹中文件名的顺序

时间:2019-05-22 11:16:56

标签: python-3.x

我需要重命名特定文件夹中的一堆文件。它们都以日期和时间结尾,例如“ hello 2019-05-22 1310.txt”,我希望每个文件的日期和时间都在第一位,以便我对它们进行排序。使用我的代码,我得到一个错误,并且找不到所有文件所在的目录。代码有什么问题?

import os
import re
import shutil

dir_path = r'C:\Users\Admin\Desktop\Testfiles' 

comp = re.compile(r'\d{4}-\d{2}-\d{2}')
for file in os.listdir(dir_path):
    if '.' in file:
        index = [i for i, v in enumerate(file,0) if v=='.'][-1]
        name = file[:index]
        ext = file[index+1:]
    else:
        ext=''
        name = file
    data = comp.findall(name)  
    if len(data)!=0:
        date= comp.findall(name)[0]

        rest_name = ' '.join(comp.split(name)).strip()
        new_name = '{} {}{}'.format(date,rest_name,'.'+ext)
        print('changing {} to {}'.format(name, new_name))
        shutil.move(os.path.join(dir_path,name), os.path.join(dir_path, new_name))
    else:
        print('file {} is not change'.format(name))

0 个答案:

没有答案