使用glob和os将文件放入文件夹&改名?

时间:2014-03-07 03:31:53

标签: python python-2.7 glob

我有一个巨大的文件夹,其中包含大约5000个文件,其名称类似于:

Rop OE[1932].exo
Make Dat[1932].edd
Back W'E[1934].exl
Pack Trees Pop[1944].exl
R.P END[1962].exl
Original CL0[1998].exp

我想要所有这些文件的创建文件夹,其名称来自上面的文件(没有扩展名),如下所示

Rop OE[1932]
Make Dat[1932]
Back W'E[1934]
Pack Trees Pop[1944]
R.P END[1962]
Original CL0[1998]

然后重命名所有文件以删除看似一年的内容,以便它们显示如下

Rop OE.exo
Make Dat.edd
Back W'E.exl
Pack Trees Pop.exl
R.P END.exl
Original CL0.exp

然后将所有文件放入其关联文件夹(同名)

执行此操作的最佳方法是什么,我尝试使用glob获取列表并循环显示所有这些但是它似乎无法正常工作。

1 个答案:

答案 0 :(得分:1)

使用globosshutilre库:

import glob
import shutil
import os
import re

root = 'path/to/folder/*'

for f in glob.glob(root):
    dirname = f.rsplit('.')[0]
    os.mkdir(dirname)
    filename = os.path.split(re.sub(r'\[\d+\]', '', f))[-1]
    shutil.move(f, os.path.join(dirname, filename))