इस समय मैं इसका उपयोग कर रहा हूं:
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कमांड से परिचित हैं , अजगर केshutil.moveपास एक किनारे का मामला है जहांshutil.moveफ़ंक्शन अलग है। पूर्ण लेखन के लिए यहां जाएं । संक्षेप में, पायथन द्वाराshutil.moveएक अपवाद उठाया जाएगा (लेकिन ग्नू-कोरुटिल्सmvनहीं होगा) जब आपकी मंजिल एक निर्देशिका है और निर्देशिका में पहले से ही स्रोत के समान नाम वाली फ़ाइल है (अधिक जानकारी के लिए पिछले लिंक में दिए गए लिंक को देखें) )।