2014-03-07 47 views
0

我有一個文件夾什麼包含類似名稱約5000個文件:如使用水珠和OS把文件到文件夾重命名和?

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 

然後所有的文件被放置在其關聯的文件夾(同名)

什麼是做到這一點的最好辦法,我已經嘗試使用水珠通過它們來獲取列表和循環所有,但它似乎沒有工作正確。

回答

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))