Це те, що я зараз використовую:
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)
Зараз повністю функціональний. Сподіваюся, що це вам допоможе.
Редагувати:
Я перетворив це на функцію, яка приймає каталог джерела та призначення, робить папку призначення, якщо її немає, і переміщує файли. Також дозволяє фільтрувати файли src, наприклад, якщо ви хочете лише переміщувати зображення, тоді ви використовуєте шаблон '*.jpg'
, за замовчуванням він переміщує все в каталозі
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
, pythonshutil.move
має один крайній випадок, колиshutil.move
функція відрізняється. Перейдіть сюди, щоб повністю написати . Коротше кажучи, Pythonshutil.move
підніме виняток (але gnu-coreutilsmv
не буде), коли ваш пункт призначення - це каталог, а в каталозі вже є файл з тим же ім'ям, що і джерело (знову для отримання додаткової інформації див. Посилання, подане в попередньому реченні ).