Şu anda kullanıyorum:
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)
Şimdi tamamen işlevsel. Umarım bu size yardımcı olur.
Düzenle:
Bunu, bir kaynak ve hedef dizini kabul eden, yoksa hedef klasörü oluşturan ve dosyaları hareket ettiren bir işleve çevirdim. Ayrıca src dosyalarının filtrelenmesine izin verir, örneğin sadece görüntüleri taşımak istiyorsanız, deseni kullanırsınız, '*.jpg'
varsayılan olarak dizindeki her şeyi taşır
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
komuta , piton enshutil.move
bir kenar durumda nerede bulunurshutil.move
fonksiyon farklıdır. Tam yazmak için buraya gidin . Özetle,shutil.move
mv
hedefiniz bir dizin olduğunda ve dizin zaten kaynakla aynı ada sahip bir dosya olduğunda Python'lar bir istisna oluşturur (ancak gnu-coreutils olmaz) ).