Esto es lo que estoy usando en este momento:
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)
Ahora completamente funcional. Espero que esto te ayude.
Editar:
He convertido esto en una función, que acepta un directorio de origen y destino, haciendo la carpeta de destino si no existe, y mueve los archivos. También permite el filtrado de los archivos src, por ejemplo, si solo desea mover imágenes, entonces usa el patrón '*.jpg'
, de forma predeterminada, mueve todo en el directorio
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
comando de gnu-coreutils , Pythonshutil.move
tiene un caso extremo donde lashutil.move
función difiere. Vaya aquí para una redacción completa . En pocas palabras, Pythonshutil.move
generará una excepción (pero gnu-coreutilsmv
no lo hará) cuando su destino sea un directorio y el directorio ya tenga un archivo con el mismo nombre que la fuente (nuevamente para obtener más información, consulte el enlace proporcionado en la oración anterior) )