পাইথন ব্যবহার করে একটি ডিরেক্টরিতে সমস্ত ফাইল কীভাবে তালিকাভুক্ত করবেন এবং সেগুলিকে একটি তালিকায় যুক্ত করবেন

Python

পাইথনে ডিরেক্টরি ফাইল তালিকা

একটি ডিরেক্টরিতে সমস্ত ফাইল তালিকাভুক্ত করা পাইথন প্রোগ্রামিং-এ একটি সাধারণ কাজ, আপনি ফাইলগুলি সংগঠিত করছেন, ডেটা প্রক্রিয়াকরণ করছেন বা স্বয়ংক্রিয় কাজগুলি করছেন। পাইথন এটি সহজে এবং দক্ষতার সাথে সম্পন্ন করার জন্য বিভিন্ন পদ্ধতি প্রদান করে।

এই নিবন্ধে, আমরা পাইথন ব্যবহার করে একটি ডিরেক্টরিতে সমস্ত ফাইল তালিকাভুক্ত করার বিভিন্ন উপায় এবং কীভাবে সেগুলিকে একটি তালিকায় যুক্ত করতে হয় তা অন্বেষণ করব। শেষ পর্যন্ত, আপনার পাইথন প্রোজেক্টে প্রোগ্রাম্যাটিকভাবে ডিরেক্টরি বিষয়বস্তুগুলি কীভাবে পরিচালনা করতে হয় সে সম্পর্কে আপনার একটি পরিষ্কার বোঝাপড়া থাকবে।

আদেশ বর্ণনা
os.walk(directory_path) উপরে-নিচে বা নীচে-উপরে হেঁটে একটি ডিরেক্টরি ট্রিতে ফাইলের নাম তৈরি করে।
os.path.join(root, file) প্রয়োজনীয় ডিরেক্টরি বিভাজক যোগ করে বুদ্ধিমত্তার সাথে এক বা একাধিক পথের উপাদান যোগ করে।
Path(directory_path) নির্দিষ্ট ডিরেক্টরি পাথের জন্য একটি পাথ অবজেক্ট তৈরি করে, ফাইল সিস্টেম পাথগুলি পরিচালনা করার জন্য বিভিন্ন পদ্ধতি প্রদান করে।
path.rglob('*') নির্দেশিকায় নির্দিষ্ট প্যাটার্নের সাথে মিলে যাওয়া সমস্ত বিদ্যমান ফাইল পুনরাবৃত্তিমূলকভাবে পাওয়া যায়।
file.is_file() যদি পাথটি একটি নিয়মিত ফাইল হয় (কোন ডিরেক্টরি বা সিমলিংক নয়) তবে সত্য প্রদান করে।
str(file) পাথ অবজেক্টকে ফাইল পাথের একটি স্ট্রিং উপস্থাপনায় রূপান্তর করে।

পাইথনে ডিরেক্টরি লিস্টিং স্ক্রিপ্ট বোঝা

প্রথম স্ক্রিপ্ট ব্যবহার করে মডিউল, বিশেষ করে ফাংশন, ডিরেক্টরি ট্রি অতিক্রম করতে। এই ফাংশনটি একটি ডিরেক্টরি ট্রিতে ফাইলের নাম তৈরি করে, উপরের ডিরেক্টরি থেকে শুরু করে পাতার ডিরেক্টরি পর্যন্ত। এই লুপের মধ্যে, আমরা ব্যবহার করি অপারেটিং সিস্টেম নির্বিশেষে চূড়ান্ত পথটি বৈধ কিনা তা নিশ্চিত করে ডিরেক্টরি পাথ এবং ফাইলের নাম সঠিকভাবে সংযুক্ত করতে। সমস্ত ফাইলের পাথ তারপর সংযুক্ত করা হয় files_list তালিকা, যা ফাংশনের শেষে ফিরে আসে। এই পদ্ধতিটি বড় ডিরেক্টরি কাঠামোর জন্য কার্যকর কারণ এটি ক্রমবর্ধমানভাবে ফাইলগুলিকে প্রক্রিয়া করে।

দ্বিতীয় স্ক্রিপ্ট নিয়োগ লাইব্রেরি, যা ফাইল সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার জন্য একটি অবজেক্ট-ভিত্তিক ইন্টারফেস প্রদান করে। আমরা একটি তৈরি করে শুরু করি প্রদত্ত ডিরেক্টরির জন্য বস্তু। দ্য পদ্ধতিটি প্রদত্ত প্যাটার্নের সাথে মিলে যাওয়া সমস্ত ফাইল পুনরাবৃত্তিমূলকভাবে খুঁজে পেতে ব্যবহৃত হয়। দ্য file.is_file() পদ্ধতি চেক করে যে প্রতিটি পাওয়া পাথ একটি নিয়মিত ফাইল কিনা। যদি এটা হয়, আমরা রূপান্তর একটি স্ট্রিং ব্যবহার করে আপত্তি এবং এটি যোগ করুন . এই পদ্ধতিটি আরও আধুনিক এবং প্রায়শই এর পাঠযোগ্যতা এবং ব্যবহারের সহজতার জন্য পছন্দ করা হয়। এটি বিভিন্ন ধরণের পাথ (যেমন সিমলিংক) আরও সুন্দরভাবে পরিচালনা করে।

পাইথন ব্যবহার করে ডিরেক্টরি ফাইল তালিকাভুক্ত করা এবং একটি তালিকায় যুক্ত করা

Python - os এবং os.path লাইব্রেরি ব্যবহার করে

import os

def list_files_in_directory(directory_path):
    files_list = []
    for root, dirs, files in os.walk(directory_path):
        for file in files:
            files_list.append(os.path.join(root, file))
    return files_list

# Example usage
directory_path = '/path/to/directory'
files = list_files_in_directory(directory_path)
print(files)

একটি ডিরেক্টরিতে সমস্ত ফাইল তালিকাভুক্ত করা এবং পাইথনে একটি তালিকায় যুক্ত করা

পাইথন - পাথলিব লাইব্রেরি ব্যবহার করা হচ্ছে

from pathlib import Path

def list_files(directory_path):
    path = Path(directory_path)
    files_list = [str(file) for file in path.rglob('*') if file.is_file()]
    return files_list

# Example usage
directory_path = '/path/to/directory'
files = list_files(directory_path)
print(files)

পাইথনে ডিরেক্টরি ফাইল তালিকার জন্য উন্নত কৌশল

পূর্বে আলোচনা করা পদ্ধতিগুলি ছাড়াও, একটি ডিরেক্টরিতে ফাইল তালিকাভুক্ত করার জন্য আরেকটি শক্তিশালী পদ্ধতির ব্যবহার জড়িত ফাংশন এই পদ্ধতি একটি পুনরাবৃত্তিকারী প্রদান করে বস্তু, যা ফাইল এবং ডিরেক্টরি সম্পর্কে তথ্য ধারণ করে। এর চেয়ে বেশি কার্যকরী বা os.walk() কারণ এটি একটি একক সিস্টেম কলে ডিরেক্টরি এন্ট্রি এবং তাদের বৈশিষ্ট্যগুলি পুনরুদ্ধার করে। এটি বিশেষভাবে উপযোগী হতে পারে যখন বড় ডিরেক্টরিগুলির সাথে কাজ করে বা যখন ফাইলগুলিকে তাদের বৈশিষ্ট্যগুলির উপর ভিত্তি করে ফিল্টার করার প্রয়োজন হয়, যেমন আকার বা পরিবর্তনের সময়।

আরেকটি উন্নত কৌশল ব্যবহার করা জড়িত মডিউল, যা পথনাম প্যাটার্ন সম্প্রসারণের জন্য একটি ফাংশন প্রদান করে। দ্য ফাংশন একটি নির্দিষ্ট প্যাটার্নের সাথে মিলে যাওয়া পাথগুলির একটি তালিকা প্রদান করে। পুনরাবৃত্ত ফাইল তালিকার জন্য, সঙ্গে ব্যবহার করা যেতে পারে recursive=True প্যারামিটার এই পদ্ধতিটি সাধারণ প্যাটার্ন ম্যাচিংয়ের জন্য অত্যন্ত দক্ষ এবং প্রায়শই ডেটা প্রসেসিং পাইপলাইনে ব্যবহৃত হয় যেখানে নির্দিষ্ট ফাইল প্রকারগুলি প্রক্রিয়া করা প্রয়োজন। তদ্ব্যতীত, সমান্তরাল প্রক্রিয়াকরণ লাইব্রেরিগুলির সাথে এই পদ্ধতিগুলিকে একীভূত করা মাল্টি-কোর প্রসেসর ব্যবহার করে ফাইল সিস্টেমের ক্রিয়াকলাপকে উল্লেখযোগ্যভাবে গতিশীল করতে পারে।

  1. আমি কিভাবে একটি ডিরেক্টরিতে শুধুমাত্র নির্দিষ্ট ফাইল প্রকারের তালিকা করতে পারি?
  2. ব্যবহার একটি নির্দিষ্ট এক্সটেনশনের সাথে ফাইলগুলি মেলে এবং তালিকাভুক্ত করার ফাংশন।
  3. তাদের তালিকা করার সময় আমি কিভাবে প্রতিটি ফাইলের আকার পেতে পারি?
  4. ব্যবহার করুন বাইটে প্রতিটি ফাইলের আকার পেতে।
  5. আমি কি তাদের পরিবর্তনের তারিখ অনুসারে ফাইলগুলি সাজাতে পারি?
  6. হ্যাঁ, ব্যবহার করুন পরিবর্তনের সময় পুনরুদ্ধার করতে এবং সেই অনুযায়ী সাজান।
  7. আমি কিভাবে নির্দিষ্ট ফাইল বা ডিরেক্টরি বাদ দিতে পারি?
  8. ফাইল বা ডিরেক্টরিগুলিকে তাদের নাম বা পথের উপর ভিত্তি করে ফিল্টার করতে আপনার লুপের মধ্যে শর্তগুলি ব্যবহার করুন৷
  9. জিপ সংরক্ষণাগারে ফাইলগুলি বের না করে তালিকাভুক্ত করা কি সম্ভব?
  10. হ্যাঁ, ব্যবহার করুন ক্লাস এবং তার জিপ আর্কাইভের মধ্যে ফাইল তালিকাভুক্ত করার পদ্ধতি।
  11. আমি ফাইল ফিল্টার করতে নিয়মিত এক্সপ্রেশন ব্যবহার করতে পারি?
  12. হ্যাঁ, একত্রিত করুন সঙ্গে মডিউল প্যাটার্নের উপর ভিত্তি করে ফাইল ফিল্টার করতে।
  13. ফাইল তালিকাভুক্ত করার সময় আমি কীভাবে প্রতীকী লিঙ্কগুলি পরিচালনা করব?
  14. ব্যবহার করুন একটি পথ একটি প্রতীকী লিঙ্ক কিনা তা পরীক্ষা করতে এবং সেই অনুযায়ী এটি পরিচালনা করুন।
  15. যদি আমার একটি দূরবর্তী সার্ভারে ফাইল তালিকাভুক্ত করার প্রয়োজন হয়?
  16. লাইব্রেরি ব্যবহার করুন দূরবর্তী সার্ভারে ফাইল তালিকাভুক্ত করার জন্য SSH এবং SFTP-এর জন্য।
  17. আমি কিভাবে একটি ডিরেক্টরিতে ফাইলের সংখ্যা গণনা করতে পারি?
  18. ব্যবহার করুন একটি ডিরেক্টরিতে ফাইলের সংখ্যা গণনা করতে।

উপসংহারে, পাইথন একটি ডিরেক্টরিতে ফাইলগুলি তালিকাভুক্ত করার এবং একটি তালিকায় যুক্ত করার জন্য একাধিক শক্তিশালী পদ্ধতি সরবরাহ করে। OS মডিউলটি ব্যাপক ডিরেক্টরি ট্রাভার্সালের জন্য একটি বহুমুখী পছন্দ, যখন পাথলিব লাইব্রেরি একটি অবজেক্ট-ভিত্তিক পদ্ধতির প্রস্তাব করে যা কোড পাঠযোগ্যতা এবং রক্ষণাবেক্ষণযোগ্যতা বাড়ায়। অতিরিক্তভাবে, গ্লোব মডিউলটি প্যাটার্ন মেলাতে পারদর্শী এবং ফাইল অনুসন্ধানের কাজগুলিকে সহজ করে। এই সরঞ্জামগুলি বোঝার এবং ব্যবহার করে, বিকাশকারীরা তাদের পাইথন প্রকল্পগুলিতে ডিরেক্টরি বিষয়বস্তু দক্ষতার সাথে পরিচালনা এবং প্রক্রিয়া করতে পারে।