2017-06-17 108 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