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

পাইথনে জাঙ্ক ফাইল অর্গানাইজার: ফাইলগুলো স্বয়ংক্রিয়ভাবে ক্যাটাগরাইজ করুন

যে প্রোগ্রামাররা ফাইল ফোল্ডার এক জায়গায় রাখেন এবং পরে বিভ্রান্ত হন, তাদের জন্য এটি খুবই উপকারী। নিচের পাইথন প্রোগ্রামটি এক ক্লিকে সব ফাইলকে উপযুক্ত ফোল্ডারে সাজিয়ে দেবে এবং খালি ডিরেক্টরি মুছে ফেলবে।

ইনপুট ফোল্ডার স্ট্রাকচার

(বিবিধ টাইপের ফাইল একসাথে থাকা ছবি)

ডিজায়ারড আউটপুট

(ফাইল টাইপ অনুযায়ী আলাদা আলাদা ফোল্ডারে সাজানো ছবি)

ফাইল টাইপ অনুযায়ী ডিরেক্টরি ডিফাইন করা

DIRECTORIES = {
    "HTML": [".html5", ".html", ".htm", ".xhtml"],
    "IMAGES": [".jpeg", ".jpg", ".tiff", ".gif", ".bmp", ".png", ".bpg", "svg", ".heif", ".psd"],
    "VIDEOS": [".avi", ".flv", ".wmv", ".mov", ".mp4", ".webm", ".vob", ".mng", ".qt", ".mpg", ".mpeg", ".3gp"],
    "DOCUMENTS": [".oxps", ".epub", ".pages", ".docx", ".doc", ".fdf", ".ods", ".odt", ".pwi", ".xsn", ".xps", ".dotx", ".docm", ".dox", ".rvg", ".rtf", ".rtfd", ".wpd", ".xls", ".xlsx", ".ppt", "pptx"],
    "ARCHIVES": [".a", ".ar", ".cpio", ".iso", ".tar", ".gz", ".rz", ".7z", ".dmg", ".rar", ".xar", ".zip"],
    "AUDIO": [".aac", ".aa", ".aac", ".dvf", ".m4a", ".m4b", ".m4p", ".mp3", ".msv", "ogg", "oga", ".raw", ".vox", ".wav", ".wma"],
    "PLAINTEXT": [".txt", ".in", ".out"],
    "PDF": [".pdf"],
    "PYTHON": [".py"],
    "XML": [".xml"],
    "EXE": [".exe"],
    "SHELL": [".sh"]
}

ফাইল ফরম্যাট টু ডিরেক্টরি ম্যাপ তৈরি করা

FILE_FORMATS = {
    file_format: directory
    for directory, file_formats in DIRECTORIES.items()
    for file_format in file_formats
}

def organise_folder():
    for entry in os.scandir():
        if entry.is_dir():
            continue
        file_path = Path(entry)
        file_format = file_path.suffix.lower()
        if file_format in FILE_FORMATS:
            directory_path = Path(FILE_FORMATS[file_format])
            directory_path.mkdir(exist_ok=True)
            file_path.rename(directory_path.joinpath(file_path))
    
    try:
        os.mkdir("OTHER-FILES")
    except:
        pass
    
    for dir in os.scandir():
        try:
            if dir.is_dir():
                os.rmdir(dir)
            else:
                os.rename(os.getcwd() + '/' + str(Path(dir)), os.getcwd() + '/OTHER-FILES/' + str(Path(dir)))
        except:
            pass

ফাইনাল স্ক্রিপ্ট

# Python Lazy Junk Files Organizer
import os
from pathlib import Path

DIRECTORIES = {
    "HTML": [".html5", ".html", ".htm", ".xhtml"],
    "IMAGES": [".jpeg", ".jpg", ".tiff", ".gif", ".bmp", ".png", ".bpg", "svg", ".heif", ".psd"],
    "VIDEOS": [".avi", ".flv", ".wmv", ".mov", ".mp4", ".webm", ".vob", ".mng", ".qt", ".mpg", ".mpeg", ".3gp"],
    "DOCUMENTS": [".oxps", ".epub", ".pages", ".docx", ".doc", ".fdf", ".ods", ".odt", ".pwi", ".xsn", ".xps", ".dotx", ".docm", ".dox", ".rvg", ".rtf", ".rtfd", ".wpd", ".xls", ".xlsx", ".ppt", "pptx"],
    "ARCHIVES": [".a", ".ar", ".cpio", ".iso", ".tar", ".gz", ".rz", ".7z", ".dmg", ".rar", ".xar", ".zip"],
    "AUDIO": [".aac", ".aa", ".aac", ".dvf", ".m4a", ".m4b", ".m4p", ".mp3", ".msv", "ogg", "oga", ".raw", ".vox", ".wav", ".wma"],
    "PLAINTEXT": [".txt", ".in", ".out"],
    "PDF": [".pdf"],
    "PYTHON": [".py"],
    "XML": [".xml"],
    "EXE": [".exe"],
    "SHELL": [".sh"]
}

FILE_FORMATS = {
    file_format: directory
    for directory, file_formats in DIRECTORIES.items()
    for file_format in file_formats
}

def organise_folder():
    for entry in os.scandir():
        if entry.is_dir():
            continue
        file_path = Path(entry)
        file_format = file_path.suffix.lower()
        if file_format in FILE_FORMATS:
            directory_path = Path(FILE_FORMATS[file_format])
            directory_path.mkdir(exist_ok=True)
            file_path.rename(directory_path.joinpath(file_path))
    
    try:
        os.mkdir("OTHER-FILES")
    except:
        pass
    
    for dir in os.scandir():
        try:
            if dir.is_dir():
                os.rmdir(dir)
            else:
                os.rename(os.getcwd() + '/' + str(Path(dir)), os.getcwd() + '/OTHER-FILES/' + str(Path(dir)))
        except:
            pass

if __name__ == "__main__":
    organise_folder()

উপরোক্ত স্ক্রিপ্ট কোনো ডিরেক্টরিতে রান করলে ফাইলগুলো স্বয়ংক্রিয়ভাবে ক্যাটাগরাইজ হয়ে যাবে।

আউটপুট

(অর্গানাইজড ফোল্ডার স্ট্রাকচারের ছবি)

  1. পাইথন Tkinter-এ askopenfile() ফাংশন ব্যবহার করে ফাইল খোলা

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

  3. পাইথন দিয়ে ওয়েবসাইট ব্লকার তৈরি করা

  4. পাইথনে জন্মদিন রিমাইন্ডার অ্যাপ্লিকেশন