2017-06-17 6 views
0

Ich habe viele meiner Anrufdateien umbenannt. Die Dateien gespeichert als:Umbenennen von doppelten Dateien in einem Ordner

020171707p + 917348809123.m4a

02016p + 917348809123.m4a

020171707p + 918658644125.m4a

020171707p + 913676876817.m4a

Ich bin mit regex um nur Ziffern nach dem + Zeichen anzuzeigen. Aber ich bekomme einen Fehler, da 2 Dateien nicht den gleichen Namen haben können. Wie kann ich den Code ändern, so dass beide neue Dateien (nur geringfügig im Namen) im selben Ordner verbleiben.

Hier ist mein Code:

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

Fügen Sie ein gültiger Integer Suffix einem Duplikat gefunden. –

Antwort

0

hier ist eine einfache Lösung

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 
Verwandte Themen