इस समय मैं इसका उपयोग कर रहा हूं:
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
नहीं होगा) जब आपकी मंजिल एक निर्देशिका है और निर्देशिका में पहले से ही स्रोत के समान नाम वाली फ़ाइल है (अधिक जानकारी के लिए पिछले लिंक में दिए गए लिंक को देखें) )।