J'ai travaillé ce défi pendant environ un jour. J'ai regardé plusieurs questions et réponses posées sur SO et j'ai essayé de 'MacGyver' le code utilisé pour mon but, mais j'ai toujours des problèmes.Déplacer des paires de fichiers (.txt & .xml) dans leur dossier correspondant en utilisant Python
J'ai un répertoire (appelons-le "src") avec des centaines de fichiers (.txt et .xml). Chaque fichier .txt a un fichier .xml associé (appelons-le une paire). Exemple:
src\text-001.txt
src\text-001.xml
src\text-002.txt
src\text-002.xml
src\text-003.txt
src\text-003.xml
Voici un exemple de la façon dont je voudrais à tourner de sorte que chaque paire de fichiers sont placés dans un seul dossier unique:
src\text-001\text-001.txt
src\text-001\text-001.xml
src\text-002\text-002.txt
src\text-002\text-002.xml
src\text-003\text-003.txt
src\text-003\text-003.xml
Ce que je voudrais faire est de créer un dossier associé pour chaque paire, puis déplacez chaque paire de fichiers dans son dossier respectif en utilisant Python. J'ai déjà essayé de travailler à partir du code que j'ai trouvé (merci à un message de Nov 12 par Sethdd, mais je n'arrive pas à trouver comment utiliser la fonction de déplacement pour récupérer des paires de fichiers.)
import os
import shutil
srcpath = "PATH_TO_SOURCE"
srcfiles = os.listdir(srcpath)
destpath = "PATH_TO_DEST"
# grabs the name of the file before extension and uses as the dest folder name
destdirs = list(set([filename[0:9] for filename in srcfiles]))
def create(dirname, destpath):
full_path = os.path.join(destpath, dirname)
os.mkdir(full_path)
return full_path
def move(filename, dirpath):
shutil.move(os.path.join(srcpath, filename)
,dirpath)
# create destination directories and store their names along with full paths
targets = [
(folder, create(folder, destpath)) for folder in destdirs
]
for dirname, full_path in targets:
for filename in srcfile:
if dirname == filename[0:9]:
move(filename, full_path)
je me sens comme il devrait être facile, mais Python n'est pas quelque chose que je travaille avec tous les jours et il a été un moment depuis que mes jours de script ... Toute aide serait grandement appréciée!
Merci,
WK2EcoD
Bienvenue dans StackOverflow. Veuillez lire et suivre les consignes de publication dans la documentation d'aide. [Exemple minimal, complet, vérifiable] (http: // stackoverflow.com/help/mcve) s'applique ici. Nous ne pouvons pas vous aider efficacement tant que vous n'afficherez pas votre code MCVE et que vous ne décrivez pas précisément le problème. Nous devrions pouvoir coller votre code posté dans un fichier texte et reproduire le problème que vous avez décrit. – Prune