Voici ce que j'utilise en ce moment:
import os, shutil
path = "/volume1/Users/Transfer/"
moveto = "/volume1/Users/Drive_Transfer/"
files = os.listdir(path)
files.sort()
for f in files:
src = path+f
dst = moveto+f
shutil.move(src,dst)
Maintenant entièrement fonctionnel. J'espère que cela vous aidera.
Éditer:
J'ai transformé cela en une fonction, qui accepte un répertoire source et de destination, créant le dossier de destination s'il n'existe pas, et déplace les fichiers. Permet également le filtrage des fichiers src, par exemple si vous ne souhaitez déplacer que des images, alors vous utilisez le motif '*.jpg'
, par défaut, il déplace tout dans le répertoire
import os, shutil, pathlib, fnmatch
def move_dir(src: str, dst: str, pattern: str = '*'):
if not os.path.isdir(dst):
pathlib.Path(dst).mkdir(parents=True, exist_ok=True)
for f in fnmatch.filter(os.listdir(src), pattern):
shutil.move(os.path.join(src, f), os.path.join(dst, f))
mv
de commande , de pythonshutil.move
a un cas de bord où lashutil.move
fonction diffère. Allez ici pour un compte rendu complet . En un mot, Pythonshutil.move
lèvera une exception (mais pas gnu-coreutilsmv
) lorsque votre destination est un répertoire et que le répertoire a déjà un fichier avec le même nom que la source (encore une fois pour plus d'informations, voir le lien fourni dans la phrase précédente ).