কম্পিউটার টিউটোরিয়াল

পাইথনে ফাইল সরানো: shutil.move() সম্পূর্ণ গাইড

shutil.move() ফাংশন কী?

shutil.move() পাইথনের shutil মডিউলের একটি ফাংশন যা ফাইল বা ডিরেক্টরি এক লোকেশন থেকে অন্য লোকেশনে সরানোর (move) জন্য ব্যবহৃত হয়। এটি হাই-লেভেল ফাইল অপারেশন প্রদান করে।

ইমপোর্ট এবং সিনট্যাক্স

import shutil
shutil.move(source, destination)
  • source: সরানো ফাইল/ফোল্ডারের পাথ (স্ট্রিং বা Path অবজেক্ট)।
  • destination: গন্তব্য পাথ। যদি ডিরেক্টরি হয়, ফাইলটি সেখানে যাবে। যদি ফাইল পাথ হয়, ফাইলটি রিনেম হয়ে যাবে।

রিটার্ন: সরানো ফাইলের নতুন পাথ (স্ট্রিং)।

ব্যবহারিক উদাহরণ

১. একক ফাইল সরানো (রিলেটিভ পাথ)

import shutil

source = "raw_data.csv"
destination = "data/"  # ডিরেক্টরি
new_path = shutil.move(source, destination)
print(new_path)  # data/raw_data.csv

২. ফাইল সরিয়ে রিনেম করা

import shutil

source = "raw_data.csv"
destination = "data/raw_data_2019.csv"  # ফাইল পাথ + নতুন নাম
new_path = shutil.move(source, destination)
print(new_path)  # data/raw_data_2019.csv

৩. একাধিক ফাইল সরানো (os.listdir সহ)

import shutil
import os

source_dir = "/home/user/data"
dest_dir = "/home/user/old_data"

files = os.listdir(source_dir)
for file in files:
    src_path = os.path.join(source_dir, file)
    new_path = shutil.move(src_path, dest_dir)
    print(f"Moved: {new_path}")

৪. প্যাথলিব (pathlib) ব্যবহার (মডার্ন পদ্ধতি)

from pathlib import Path
import shutil

source = Path("raw_data.csv")
destination = Path("data") / "raw_data_2019.csv"

new_path = shutil.move(source, destination)
print(new_path)

গুরুত্বপূর্ণ নোটস

  • ওভাররাইট: গন্তব্যে একই নামে ফাইল থাকলে সেটি বিনা সতর্কতাই ওভাররাইট হয়ে যাবে।
  • ক্রস-ডিভাইস: ভিন্ন ফাইল সিস্টেম/ড্রাইভে সরালে এটি কপি+ডিলিট করে (স্লো)।
  • ফোল্ডার সরানো: একই সিনট্যাক্সে পুরো ডিরেক্টরি সরানো যায়।
  • os.rename() বনাম shutil.move(): os.rename() শুধু রিনেম/সেম ডিভাইসে মুভ করতে পারে। shutil.move() আরও পাওয়ারফুল এবং ক্রস-প্ল্যাটফর্ম।

এরর হ্যান্ডলিং

import shutil
import os

source = "missing.txt"
destination = "data/"

try:
    if os.path.exists(source):
        new_path = shutil.move(source, destination)
        print(f"Moved to {new_path}")
    else:
        print("Source file does not exist.")
except Exception as e:
    print(f"Error moving file: {e}")

নিষ্কর্ষ

shutil.move() পাইথনে ফাইল/ফোল্ডার সরানোর স্ট্যান্ডার্ড এবং সবচেয়ে বilidadas পদ্ধতি। এটি রিলেটিভ ও অ্যাবসোলিউট পাথ, রিনেম, এবং ডিরেক্টরি সরানো সব হ্যান্ডেল করে। প্রোডাকশন কোডে সবসময় এরর হ্যান্ডলিং এবং পাথ যাচাই যোগ করুন।

  1. পাইথনে জেরো সরানো (Move Zeroes)

  2. পাইথনে ফাইল অবজেক্ট: ফাইল পড়া, লিখা এবং ম্যানেজমেন্টের সম্পূর্ণ গাইড

  3. পাইথনে টেক্সট ফাইল পুরো লাইন-বাই-লাইন পড়ার পদ্ধতি

  4. ওয়ার্ডপ্রেস ফাইল পারমিশন: নতুনদের জন্য বিশ্বস্ত গাইড