Đây là những gì tôi đang sử dụng tại thời điểm này:
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)
Bây giờ đầy đủ chức năng. Hy vọng điều này sẽ giúp bạn.
Biên tập:
Tôi đã biến điều này thành một hàm, chấp nhận thư mục nguồn và đích, tạo thư mục đích nếu nó không tồn tại và di chuyển các tệp. Cũng cho phép lọc các tệp src, ví dụ nếu bạn chỉ muốn di chuyển hình ảnh, thì bạn sử dụng mẫu '*.jpg'
, theo mặc định, nó di chuyển mọi thứ trong thư mục
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
có một trường hợp cạnh cóshutil.move
chức năng khác nhau. Tới đây để viết đầy đủ lên . Tóm lại, Pythonshutil.move
sẽ đưa ra một ngoại lệ (nhưng gnu-coreutilsmv
sẽ không) khi đích đến của bạn là một thư mục và thư mục đã có một tệp có cùng tên với nguồn (một lần nữa để biết thêm thông tin, hãy xem liên kết được cung cấp trong câu trước ).