web-dev-qa-db-fra.com

Renommer l'extension de fichier à l'aide de pathlib (python 3)

J'utilise Windows 10 et Winpython. J'ai un fichier avec une extension .dwt (c'est un fichier texte). Je veux changer l'extension de ce fichier en .txt.

Mon code ne génère aucune erreur, mais il ne modifie pas l'extension.

from pathlib import Path

filename = Path("E:\\seaborn_plot\\x.dwt")

print(filename)

filename_replace_ext = filename.with_suffix('.txt')

print(filename_replace_ext)

Les résultats attendus sont imprimés (comme indiqué ci-dessous) dans la sortie de la fenêtre ipython de winpython:

E:\seaborn_plot\x.dwt

E:\seaborn_plot\x.txt

Mais lorsque je cherche un fichier avec une extension renommée, l'extension n'a pas été modifiée, seul le fichier d'origine existe. Je soupçonne les autorisations de fichiers Windows.

7
user3398600

De la documentation:

Path.rename(target)

Renommez ce fichier ou répertoire à la cible donnée . Sous Unix, si la cible existe et est un fichier, il sera remplacé silencieusement si l'utilisateur a l'autorisation. target peut être soit une chaîne soit un autre objet de chemin.

pathlib - Chemins du système de fichiers orientés objet sur docs.python.org

Vous pouvez l'utiliser comme ceci:

from pathlib import Path


filename = Path("E:\\seaborn_plot\\x.dwt")
filename_replace_ext = filename.with_suffix(".txt")
filename.rename(filename_replace_ext)
0