কম্পিউটার

একটি ডিরেক্টরিতে পাইথন তালিকা ফাইল:ধাপে ধাপে নির্দেশিকা

পাইথন ওএস লাইব্রেরি একটি ডিরেক্টরিতে ফাইল তালিকাভুক্ত করতে ব্যবহৃত হয়। Python os.listdir() পদ্ধতি একটি ডিরেক্টরির প্রতিটি ফাইল এবং ফোল্ডারের একটি তালিকা প্রদান করে। os.walk() ফাংশন একটি সম্পূর্ণ ফাইল ট্রিতে প্রতিটি ফাইলের একটি তালিকা প্রদান করে।


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

Python os লাইব্রেরি অনেকগুলি পদ্ধতি অফার করে যা একটি ডিরেক্টরিতে ফাইল তালিকাভুক্ত করতে ব্যবহার করা যেতে পারে। এই টিউটোরিয়ালটি আলোচনা করবে কিভাবে os.listdir() ব্যবহার করে ডিরেক্টরে ফাইল এবং ফোল্ডার পেতে হয়। আমরা os.walk() ব্যবহার করার বিষয়েও কথা বলব৷ একটি ডিরেক্টরি এবং ফাইল এবং ফোল্ডার পেতে এর সাবডিরেক্টরিতে।

পাইথন ওএস লাইব্রেরি

পাইথন ওএস লাইব্রেরি অনেকগুলি ফাংশন সরবরাহ করে যা আপনি অপারেটিং সিস্টেমের সাথে কাজ করতে ব্যবহার করতে পারেন। OS মডিউলের অন্তর্ভুক্ত ফাংশনগুলি যে কোনও আধুনিক অপারেটিং সিস্টেমে কাজ করে, তা সে উইন্ডোজ, লিনাক্স বা ম্যাকই হোক না কেন৷

যেহেতু os একটি বাহ্যিক লাইব্রেরি, তাই আমরা এটি ব্যবহার শুরু করার আগে আমাদের এটিকে আমাদের কোডে আমদানি করতে হবে। আমরা পাইথন ইম্পোর্ট স্টেটমেন্ট ব্যবহার করে তা করতে পারি:

import os

এখন যেহেতু আমরা আমাদের কোডে OS লাইব্রেরি আমদানি করেছি, আমরা একটি ডিরেক্টরিতে আইটেমগুলি তালিকাভুক্ত করতে এর ফাংশনগুলি ব্যবহার করা শুরু করতে পারি৷

Python os.listdir()

পাইথনে, os.listdir() পদ্ধতি একটি প্রদত্ত ডিরেক্টরিতে ফাইল এবং ফোল্ডার তালিকাভুক্ত করে। পদ্ধতিটি বিশেষ এন্ট্রি যেমন '.' এবং '..' ফেরত দেয় না, যা অপারেটিং সিস্টেম বিভিন্ন ডিরেক্টরির মাধ্যমে নেভিগেট করতে ব্যবহার করে।

os.listdir() এছাড়াও প্রথম স্তরের ফোল্ডারের বাইরে ফাইল এবং ফোল্ডার ফেরত দেয় না। অন্য কথায়, os.listdir() পদ্ধতি দ্বারা আবিষ্কৃত সাবফোল্ডারের মধ্যে কিছু ফেরত দেয় না।

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।

os.listdir() ফাংশন একটি প্যারামিটার গ্রহণ করে:ডিরেক্টরির ফাইল পাথ যার ফাইল এবং ফোল্ডারের নাম আপনি পুনরুদ্ধার করতে চান।

এখানে listdir পদ্ধতির সিনট্যাক্স রয়েছে:

os.listdir(path)

পাইথন প্রোগ্রামে এই পদ্ধতিটি কীভাবে ব্যবহার করা যায় তা দেখানোর জন্য আসুন একটি উদাহরণ দিয়ে হেঁটে যাই।

os.listdir() পাইথন উদাহরণ

বলুন যে আমরা একটি প্রোগ্রাম তৈরি করছি যা গত দশকে Netflix-এর স্টক মার্কেটের কর্মক্ষমতা বিশ্লেষণ করে। আমাদের সমস্ত কাঁচা ডেটা সহ আমাদের একটি ফোল্ডার (নাম:/home/data_analysis/netflix) আছে এবং আমাদের প্রোগ্রামটি চালু হওয়ার আগে, আমরা raw_data_2019.csv ফাইলটি নিশ্চিত করতে পরীক্ষা করতে চাই সেই ফোল্ডারের মধ্যে বিদ্যমান।

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

/home/data_analysis/netflix-এ ফাইলগুলির একটি তালিকা পুনরুদ্ধার করতে আমরা নিম্নলিখিত কোডটি ব্যবহার করতে পারি কাজের ডিরেক্টরি:

import os

path = '/home/data_analysis/netflix'

files = os.listdir(path)

for f in files:
	print(f)

আমাদের প্রোগ্রাম নির্দিষ্ট ডিরেক্টরিতে সমস্ত ফাইল এবং ফোল্ডারের একটি তালিকা পুনরুদ্ধার করে এবং নিম্নলিখিতগুলি প্রদান করে:

README.md
app.py
raw_data_2016.csv
raw_data_2017.csv
raw_data_2018.csv
raw_data_2019.csv
processed_data

এখন, আমরা raw_data_2019.csv ফাইলটি কিনা তা দেখতে পারি। ফোল্ডারে আছে। আপনি দেখতে পাচ্ছেন, এটা।

আসুন আমাদের কোড ভাঙ্গা যাক। প্রথম লাইনে, আমরা os মডিউল আমদানি করি, যা os.listdir() অ্যাক্সেস করার জন্য আমাদের করতে হবে। ফাংশন তারপর, আমরা path নামে একটি পাইথন ভেরিয়েবল ঘোষণা করি , যা সেই পথের নাম সংরক্ষণ করে যার বিষয়বস্তু আমরা পুনরুদ্ধার করতে চাই৷

পরবর্তী লাইনে, আমরা /home/data_analysis/netflix-এ ফাইল এবং ফোল্ডারগুলির একটি তালিকা পেতে os.listdir() পদ্ধতি ব্যবহার করি ডিরেক্টরি অবশেষে, আমরা লুপের জন্য একটি পাইথন তৈরি করি। এই লুপ os.listdir() দ্বারা উত্পাদিত তালিকার প্রতিটি আইটেমের মাধ্যমে পুনরাবৃত্তি হয় . আমরা পাইথন প্রিন্ট() স্টেটমেন্ট ব্যবহার করে কনসোলে প্রতিটি ফাইলের নাম প্রিন্ট আউট করি।

/home/data_analysis/netflix ডিরেক্টরিতে ছয়টি ফাইল এবং একটি ডিরেক্টরি রয়েছে। ডিরেক্টরিটিকে বলা হয়processed_data এবং অন্যান্য ফাইল থেকে আলাদা করা যায় কারণ এর কোনো এক্সটেনশন নেই।

Python os.walk()

os.walk() ফাংশন একটি গাছের মধ্যে থাকা ফাইলগুলির একটি তালিকা পুনরুদ্ধার করে। পদ্ধতিটি একটি গাছের প্রতিটি ডিরেক্টরিতে পুনরাবৃত্তি করে। তারপর, os.walk() একটি ডিরেক্টরির মধ্যে প্রতিটি ফাইল এবং ফোল্ডারের নাম এবং এর যেকোনো সাবডিরেক্টরি প্রদান করে৷

os.walk()-এর সিনট্যাক্স পদ্ধতিটি নিম্নরূপ:

os.walk(top, topdown, onerror, followlinks)

os.walk() পদ্ধতি চারটি প্যারামিটার গ্রহণ করে:

  • শীর্ষ শীর্ষ ডিরেক্টরি যার উপাদান ফাইল এবং ফোল্ডারের নাম আপনি পুনরুদ্ধার করতে চান (প্রয়োজনীয়)
  • টপডাউন , সত্যে সেট করা হলে, নির্দেশ করে যে ডিরেক্টরিগুলি উপরে থেকে নীচে স্ক্যান করা উচিত। যদি এই মানটি False এ সেট করা থাকে, তাহলে ডিরেক্টরিগুলি নীচে থেকে স্ক্যান করা হবে (ঐচ্ছিক)
  • ত্রুটি একটি ত্রুটি হ্যান্ডলার প্রদান করে যদি একটি ত্রুটির সম্মুখীন হয় (ঐচ্ছিক)
  • ফলোলিংক , যদি True তে সেট করা হয়, সিস্টেম লিঙ্ক (ঐচ্ছিক) দ্বারা উল্লেখ করা ফোল্ডারগুলি পরিদর্শন করে

আমরা প্রথম দুটি প্যারামিটারের উপর ফোকাস করতে যাচ্ছি যেহেতু অনরর এবং ফলোলিংকগুলি আরও উন্নত এবং সাধারণভাবে ব্যবহৃত হয় না৷

os.walk() পাইথন উদাহরণ

ধরা যাক যে আমরা /home/data_analysis/netflix-এ সমস্ত ফাইলের নাম পুনরুদ্ধার করতে চাই ডিরেক্টরি আমরা সেই ফোল্ডারের সমস্ত সাবডিরেক্টরির মধ্যে কী আবদ্ধ আছে তাও খুঁজে বের করতে চাই৷

যেমনটি আমরা উপরে আলোচনা করেছি, নেটফ্লিক্স ডিরেক্টরিতে একটি ফোল্ডার রয়েছে:প্রসেসড_ডেটা . /home/data_analysis/netflix-এ সমস্ত ফাইলের নাম পুনরুদ্ধার করতে আমরা নিম্নলিখিত কোডটি ব্যবহার করতে পারি ডিরেক্টরি এবং এর সাবডিরেক্টরি:

import os

path = '/home/data_analysis/netflix'

for root, directories, files in os.walk(path, topdown=False):
	for name in files:
		print(os.path.join(root, name))
	for name in directories:
		print(os.path.join(root, name))

এখানে আমাদের কোড থেকে আউটপুট আছে:

/home/data_analysis/netflix/README.md
/home/data_analysis/netflix/app.py
/home/data_analysis/netflix/raw_data_2016.csv
/home/data_analysis/netflix/raw_data_2017.csv
/home/data_analysis/netflix/raw_data_2018.csv
/home/data_analysis/netflix/raw_data_2019.csv
/home/data_analysis/netflix/processed_data
/home/data_analysis/netflix/processed_data/final.csv

আমরা os মডিউল আমদানি করি যেখান থেকে আমরা os.walk() রেফারেন্স করি এবং os.path.join() আমাদের কোড পরে পদ্ধতি. তারপর, আমরা পথ নামে একটি ভেরিয়েবল ঘোষণা করি , যা সেই পাথ সংরক্ষণ করে যার ফাইলের নাম আমরা আবিষ্কার করতে চাই।

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

আমাদের জন্য অতিরিক্ত for ব্যবহার করে os.walk() পদ্ধতি দ্বারা আবিষ্কৃত প্রতিটি ফাইল এবং ডিরেক্টরির মাধ্যমে লুপ পুনরাবৃত্তি করে loops আমরা কনসোলে os.walk() ফাইলগুলি প্রিন্ট আউট করি।

আমাদের উপরের কোডে, এখানে আমাদের জন্য আছে লুপস:

for root, directories, files in os.walk(path):
	for name in files:
		print(os.path.join(root, name))
	for name in directories:
		print(os.path.join(root, name))

তারপর, আমাদের প্রোগ্রাম os.path.join() ব্যবহার করে প্রতিটি ফাইলের রুট ফোল্ডারে একত্রে যোগদান করে (যেমন /home/data_analysis/netflix )এবং ফাইলের নাম (যেমন raw_datra_2019.csv ) রুট ফোল্ডারটি নির্দেশ করে যে ডিরেক্টরির পাথটিতে একটি ফাইল বিদ্যমান।

উপসংহার

আপনি পাইথন listdir() ব্যবহার করতে পারেন এটি করার পদ্ধতি। আপনি ওয়াক()ও ব্যবহার করতে পারেন পদ্ধতি, যা একটি ডিরেক্টরিতে সবকিছু তালিকাভুক্ত করে, সহ সাব-ডিরেক্টরির মধ্যে কিছু।

এই নির্দেশিকাটি অন্বেষণ করেছে, উদাহরণ প্রদান করে, কিভাবে os.listdir() ব্যবহার করতে হয় এবং os.walk() পাইথনে একটি ডিরেক্টরিতে ফাইল এবং ফোল্ডার তালিকাভুক্ত করার পদ্ধতি। এখন আপনার কাছে বিশেষজ্ঞের মতো পাইথনের একটি ডিরেক্টরিতে ফাইল তালিকাভুক্ত করার দক্ষতা রয়েছে!

পাইথনে কোডিং সম্পর্কে আরও জানতে, আমাদের সম্পূর্ণ কীভাবে পাইথন শিখবেন নির্দেশিকা পড়ুন।


  1. পাইথন তালিকা পদ্ধতি:একটি ধাপে ধাপে নির্দেশিকা

  2. পাইথন উত্তরাধিকার:একটি ধাপে ধাপে নির্দেশিকা

  3. পাইথন বিপরীত তালিকা:একটি ধাপে ধাপে টিউটোরিয়াল

  4. পাইথন দোভাষী:একটি ধাপে ধাপে গাইড