প্রিয় বন্ধুরা , আশা করি সবাই ভাল আছেন । আজ আমি আবারও সিস্টেম প্রোগ্রামিং নিয়ে আলোচনা করব । এবার ও আপনারা পাইথন দিয়ে সিস্টেম এর কয়েকটি কাজ দেখবেন ।
দেখূন , আজ প্রথমে আমরা দেখব কীভাবে পাইথন দিয়ে একটা সিস্টেমের বিভিন্ন ইফরমেশন জানা যায় । এজন্য আপনাদের একটা মডিউল ইমপোর্ট করতে হবে যার নাম "platform" ।
তাই এই কাজ করার আগে এ্ই মডিউলটা ইমপোর্ট করে নিতে হবে । সবাই নিচের কোডগুলো দেখি ও লিখি :
দেখূন , আজ প্রথমে আমরা দেখব কীভাবে পাইথন দিয়ে একটা সিস্টেমের বিভিন্ন ইফরমেশন জানা যায় । এজন্য আপনাদের একটা মডিউল ইমপোর্ট করতে হবে যার নাম "platform" ।
তাই এই কাজ করার আগে এ্ই মডিউলটা ইমপোর্ট করে নিতে হবে । সবাই নিচের কোডগুলো দেখি ও লিখি :
1
2
3
4
5
6
7
8
9
10
| import platformprint ('uname:', platform.uname())print(".......................................")print ('system :', platform.system())print ('node :', platform.node())print ('release :', platform.release())print ('version :', platform.version())print ('machine :', platform.machine())print ('processor:', platform.processor()) |
দেখুন , এগুলো নিচের রেজাল্ট ক্রিয়েট করেছে । এটা হল আমার পিসির কনফিগারেশন ।
1
2
3
4
5
6
7
| uname: uname_result(system='Windows', node='Heaven-PC', release='7', version='6.1.7600', machine='x86', processor='x86 Family 6 Model 23 Stepping 10, GenuineIntel')system : Windowsnode : Heaven-PCrelease : 7version : 6.1.7600machine : x86processor: x86 Family 6 Model 23 Stepping 10, GenuineIntel |
এখানে মূলত কোডগুলির অর্থ হল :
platform.uname() : সিস্টেম সম্পর্কে প্রায় সব (system, node, release, version, machine, processor ) তথ্য রিটার্ণ করে ।
platform.system() : কোন অপারেটিং সিস্টেম তা রিটার্ণ করে ।
platform.node() : পিসির ইউজার নেম ।
platform.release() : সিস্টেমের কততম রিলিজ তা রিটার্ণ করে ।
platform.version() : অপারেটিং সিস্টেম এর ভার্সন কত তা রিটার্ণ করে ।
platform.machine() : কত বিটের অপারেটিং সিস্টেম তা রিটার্ণ করে ।
platform.processor() : পিসির প্রসেসর সম্পর্কিত তথ্য রিটার্ণ করে ।
এবার আসি একটা গুরুত্বপূর্ণ কাজে । । এটার মেন কাজ হল আপনার দেওয়া ডাটা অনুযায়ী সিস্টেমের মধ্যে কোন ডাইরেক্টরিতে কতগুলো ফাইল , ফোল্ডার ,বা ডাইরেক্টরি আছে তা খুজে বের করা । এটা আমরা করব os মডিউলের একটা কমান্ড দিয়ে । এই মেথডটির নাম হল os.walk() । এটি সাথে সাথে সমস্ত ফাইলের নাম ও ফরম্যাটও বলে দেয় । সবাই নিচের কোডগুলি টাইপ করুন ।
1
2
3
4
5
6
| import ospath = input("Specify a folder that you want to perform an 'os.walk' on: >> ")for root, dirs, files in os.walk(path): print (root) print (dirs) print (files) |
দেখূন প্রথমে অমরা মডিউল ইমপোর্ট করেছি । তারপর ব্যাবহারকারী যে ডাইরেক্টরীর সকল তথ্য জানতে চান সেই ডাইরেক্টরী টা ইনপুট নিয়েছি । এরপর root, dirs, files নামের ৩ টি ভ্যরিয়েবল নিয়ে উক্ত ডাইরেক্টরিতে কতগুলি ফাইল , ফোল্ডার ও ডাইরেক্টরী আছে ও তাদের নাম ও ফরম্যাট রিটার্ণ করেছি os.walk(path) কোডের মাধ্যমে । তারপর আমরা সেগুলো প্রিন্ট করেছি ।
এখন সবাই দেখুন পাইথনের সাহায্যে কীভাবে কোন নির্দিষ্ট ফরম্যাটের ফাইল খুজে পেতে হয় । এর জন্য আমরা একটা নতুন মডিউল ইউজ করব যার নাম "fnmatch" । সবাই নিচের কোডগুলি লিখুন :
1
2
3
4
5
6
7
8
9
| import fnmatchimport osPath = ('/')pattern = ('*.mp3')for root, dirs, files in os.walk(Path): for filename in fnmatch.filter(files, pattern): print( os.path.join(root, filename)) |
খেুন , এখানে আমি মডিউল ইমপোর্টের পর একটা প্যাথ বা ডাইরেক্টরী দেখিয়ে দিয়েছি ।তারপর ফাইলের প্যাটার্ণ কেমন হবে তা দেখিদে দিয়েছি .mp3 দ্বারা । এগুলো আপনারা ইউজারের কাছ থেকে ইনপুটও নিতে পারেন । নিয়ে একটা ফাইল সার্চিং অ্যাপ তৈরী করতে পারেন ।
দেখুন , তারপর আমরা os.walk মেথড দ্বারা উক্ত ডাইরেক্টরীর আন্ডারে সব ফাইল , ডাইরেক্টরী ও ফোল্ডার চেক করেছি ও রিটার্ণ করেছি । কিন্তু প্রিন্ট করিনি । কারণ এটা আমাদের দরকার না ।
দেখুন , তারপর আমরা os.walk মেথড দ্বারা উক্ত ডাইরেক্টরীর আন্ডারে সব ফাইল , ডাইরেক্টরী ও ফোল্ডার চেক করেছি ও রিটার্ণ করেছি । কিন্তু প্রিন্ট করিনি । কারণ এটা আমাদের দরকার না ।
তারপর filename নামে একটা ভ্যারিয়েবল নিয়ে আমরা fnmatch.filter(files, pattern) কোড দ্বারা আমাদের দেখানো প্যাথে ও আমাদের বলে দেওয়া প্যাটার্ণের সাথে মিলিয়ে ফাইলগুলো ফিল্টার করেছি । তারপর একদম শেষ লাইনে আমরা os.path.join(root, filename) কোড দ্বারা ফাইলের প্যাথগুলো জয়েন করে রুট অর্থাৎ ডাইরেক্টরী ও ফাইলের নাম প্রিন্ট করেছি । ফলে আমাদের দেখানো পথে সমস্ত এম পি ৩ গানের একটা লিস্ট এটা প্রিন্ট করেছে ।
