J'ai un répertoire volumineux avec de nombreux fichiers de pièces avec leurs révisions, je veux créer de manière récursive un nouveau dossier pour chaque partie, puis déplacer tous les fichiers liés dans ce dossier. J'essaie de le faire en isolant un numéro à 7 chiffres qui serait utilisé comme identifiant pour la pièce, et tous les noms de fichiers associés incluraient également ce numéro.Création de sous-répertoires et tri de fichiers basés sur le nom de fichier PYTHON
import os
import shutil
import csv
import glob
from fnmatch import fnmatch, filter
from os.path import isdir, join
from shutil import copytree, copy2, Error, copystat
from shutil import copytree, ignore_patterns
dirname = ' '
# pattern = '*???????*'
for root, dirs, files in os.walk(dirname):
for fpath in files:
print(fpath)
if fpath[0:6].isdigit():
matchdir = os.mkdir(os.path.join(os.path.dirname(fpath)))
partnum = str(fpath[0:6])
pattern = str(partnum)
filematch = fnmatch(files, pattern)
print(filematch)
shutil.move(filematch, matchdir)
C'est ce que j'ai à ce jour, au fond, je ne suis pas sûr comment obtenir le nom du fichier d'origine et l'utiliser comme le crépitement correspondant pour le reste des fichiers. Le nom de fichier d'origine que je veux utiliser pour ce motif correspondant est juste un nombre à 7 chiffres, et tous les fichiers associés peuvent avoir d'autres caractères (REV-2) par exemple.
Où avez-vous des problèmes? Vous avez réussi à extraire un numéro à 7 chiffres du début du nom de fichier, à l'enregistrer dans ** partnum ** et ** pattern ** et à rechercher d'autres fichiers contenant cette chaîne à 7 chiffres. Le nom du fichier d'origine est toujours sûr dans ** fpath **. Quelle partie de cela ne fonctionne pas, et que fait-elle * à la place? – Prune