প্রিয় বন্ধুরা , আশা করি সবাই ভাল আছেন । আজ আমি আবারও সিস্টেম প্রোগ্রামিং নিয়ে আলোচনা করব । এবার ও আপনারা পাইথন দিয়ে সিস্টেম এর কয়েকটি কাজ দেখবেন ।
দেখূন , আজ প্রথমে আমরা দেখব কীভাবে পাইথন দিয়ে একটা সিস্টেমের বিভিন্ন ইফরমেশন জানা যায় । এজন্য আপনাদের একটা মডিউল ইমপোর্ট করতে হবে যার নাম "platform" ।
তাই এই কাজ করার আগে এ্ই মডিউলটা ইমপোর্ট করে নিতে হবে । সবাই নিচের কোডগুলো দেখি ও লিখি :
import platform print ('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())
দেখুন , এগুলো নিচের রেজাল্ট ক্রিয়েট করেছে । এটা হল আমার পিসির কনফিগারেশন ।
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 : Windows node : Heaven-PC release : 7 version : 6.1.7600 machine : x86 processor: 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() । এটি সাথে সাথে সমস্ত ফাইলের নাম ও ফরম্যাটও বলে দেয় । সবাই নিচের কোডগুলি টাইপ করুন ।
import os path = 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" । সবাই নিচের কোডগুলি লিখুন :
import fnmatch import os Path = ('/') 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 মেথড দ্বারা উক্ত ডাইরেক্টরীর আন্ডারে সব ফাইল , ডাইরেক্টরী ও ফোল্ডার চেক করেছি ও রিটার্ণ করেছি । কিন্তু প্রিন্ট করিনি । কারণ এটা আমাদের দরকার না ।
তারপর filename নামে একটা ভ্যারিয়েবল নিয়ে আমরা fnmatch.filter(files, pattern) কোড দ্বারা আমাদের দেখানো প্যাথে ও আমাদের বলে দেওয়া প্যাটার্ণের সাথে মিলিয়ে ফাইলগুলো ফিল্টার করেছি । তারপর একদম শেষ লাইনে আমরা os.path.join(root, filename) কোড দ্বারা ফাইলের প্যাথগুলো জয়েন করে রুট অর্থাৎ ডাইরেক্টরী ও ফাইলের নাম প্রিন্ট করেছি । ফলে আমাদের দেখানো পথে সমস্ত এম পি ৩ গানের একটা লিস্ট এটা প্রিন্ট করেছে ।
আর আমাদের রায়হান ভাই পাইথন বাংলা নামে একটা গ্রুপ তৈরী করেছেন ফেসবুকে । আপনারা কেউ ইচ্ছা করলে এটাতে জয়েন করতে পারেন । পাইথনের বিভিন্ন সমস্যা নিয়ে এখানে আলোচনা করা হবে ।
আজ আর লিখতে পারলাম না । আগামীতে আবার দেখা হবে । সবাই ভাল থাকবেন । ধন্যবাদ ।
আমি অরিন্দম পাল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 5 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 81 টি টিউন ও 316 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 20 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
মানসিক ভাবে দূর্বল । কোন কাজই কনফিডেন্টলি করতে পারি না , তবুও দেখি কাজ শেষ পর্যন্ত হয়ে যায় । নিজের সম্পর্কে এক এক সময় ধারণা এক এক রকম হয় । আমার কোন বেল ব্রেক নেই । সকালে যে কাজ করব ঠিক করি , বিকালে তা করতে পারি না । নিজের...
nice !