Z tego właśnie korzystam:
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)
Teraz w pełni funkcjonalny. Mam nadzieję, że to ci pomoże.
Edytować:
Przekształciłem to w funkcję, która akceptuje katalog źródłowy i docelowy, tworząc folder docelowy, jeśli nie istnieje, i przenosi pliki. Pozwala również na filtrowanie plików src, na przykład jeśli chcesz tylko przenosić obrazy, następnie używasz wzorca '*.jpg'
, domyślnie przenosi wszystko w katalogu
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
polecenia , Pythonshutil.move
ma jeden przypadek krawędzi, gdzieshutil.move
różni funkcyjnych. Idź tutaj, aby napisać cały tekst . W skrócie, Pythonshutil.move
zgłosi wyjątek (ale gnu-coreutilsmv
tego nie zrobi), gdy miejscem docelowym jest katalog, a katalog ma już plik o tej samej nazwie co źródło (ponownie, aby uzyskać więcej informacji, zobacz link podany w poprzednim zdaniu ).