2017-06-17 138 views
0

我正在重命名大量的通話文件。該文件保存爲:重命名文件夾中的重複文件

020171707p + 917348809123.m4a

02016p + 917348809123.m4a

020171707p + 918658644125.m4a

020171707p + 913676876817.m4a

我使用正則表達式在+符號後面只顯示數字。 但是我得到一個錯誤,因爲2個文件不能有相同的名稱。我如何修改代碼,以便兩個新文件(名稱上只有稍微不同)保留在同一個文件夾中。

這裏是我的代碼:

import re 
import os 
path="D:\\docu\s\mjay\docu\\acr" 
DIR=os.chdir(path) 
newstr=".m4a" 
for filename in os.listdir(path): 
    match=re.search("p\+(\d+)",filename) 
    if match==None: 
    continue 
    newfilename=match.group(1)+newstr 
    os.rename(filename,newfilename) 
+0

追加一個有效的整數後綴以任何重複的發現。 –

回答

0

這裏是一個簡單的辦法

import os 
count = 1 
path = "D:\\docu\s\mjay\docu\\acr\\" 

for filename in os.listdir(path): 
    try: 
     f_name = filename.split("+")[1] 
     f_name = f_name.split(".")[0]+"."+f_name.split(".")[1] 
     os.rename(path+filename,path+f_name) 
     count +=1 
    except: 
     f_name = filename.split("+")[1] 
     f_name = f_name.split(".")[0]+str(count)+"."+f_name.split(".")[1] 
     os.rename(path+filename,path+f_name) 
     count+=1