2017-06-05 4 views
0

Je dois renommer les dossiers dans mon code.Comment renommer un dossier qui est dans un autre chemin?

Mon code actuel:

target_file = input("Input folder that you want to rename >>>") 
rename = input("Please write a new name for it >>> ") 
try : 
    os.rename(target_file, rename) 
    print("Successfull") 
except : 
    print("!!! You didn't write file name right. Try again !!!") 

Ce code de renommer les dossiers dans le chemin de travail en cours. Mais j'ai besoin de renommer les fichiers dans d'autres chemins, comme ceci:

os.rename(C:\\user\\oldname, newname) 

Est-il possible?

+1

Voulez-vous dire 'os.rename ('C: \\ user \\ oldname', 'c: \\ user \\ newname')'? – khelwood

+0

'os.rename ('C:/user /' + anciennom, nouveau nom)'? –

+0

Ils n'ont pas fonctionné –

Répondre

0

Vous pouvez, mais vous devez faire attention que vous utilisez le chemin absolu pour le premier argument, alors que le second est le chemin relatif.

En deux mots, cela signifie que vous trouverez le fichier que vous recherchez, mais il sera enregistré dans le dossier de votre script en cours d'exécution dans.

Comme le commentaire suggère, si vous voulez pour ne le renommer que tout en le gardant au même endroit, vous devez écrire le chemin absolu à chaque fois ou trouver un moyen astucieux de transposer le chemin relatif que vous entrez en second argument dans un chemin relatif ...

Une idée serait de diviser votre premier argument d'une manière d'obtenir le chemin absolu moins le dossier que vous voulez renommer:

target_file_path = '/'.join(target_file.split('/')[:-1])