মজার ও সহজ প্রোগ্রামিং, পাইথন প্রোগ্রামিং [পর্ব-১৭] :: পাইথনে সিস্টেম প্রোগ্রামিং – ২ ( অপারেটিং সিস্টেম ও ফাইল নিয়ে কাজ )

মজার ও সহজ পাইথন প্রোগ্রামিং

প্রিয় বন্ধুরা , আশা করি সবাই ভাল আছেন । আজ আমি আবারও সিস্টেম প্রোগ্রামিং নিয়ে আলোচনা করব । এবার ও আপনারা পাইথন দিয়ে সিস্টেম এর কয়েকটি কাজ দেখবেন ।
দেখূন , আজ প্রথমে আমরা দেখব কীভাবে পাইথন দিয়ে একটা সিস্টেমের বিভিন্ন ইফরমেশন জানা যায় । এজন্য আপনাদের একটা মডিউল ইমপোর্ট করতে হবে যার নাম "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) কোড দ্বারা ফাইলের প্যাথগুলো জয়েন করে রুট অর্থাৎ ডাইরেক্টরী ও ফাইলের নাম প্রিন্ট করেছি । ফলে আমাদের দেখানো পথে সমস্ত এম পি ৩ গানের একটা লিস্ট এটা প্রিন্ট করেছে ।

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

আজ আর লিখতে পারলাম না । আগামীতে আবার দেখা হবে । সবাই ভাল থাকবেন । ধন্যবাদ ।

Level 2

আমি অরিন্দম পাল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 11 বছর 10 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 81 টি টিউন ও 316 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 20 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

মানসিক ভাবে দূর্বল । কোন কাজই কনফিডেন্টলি করতে পারি না , তবুও দেখি কাজ শেষ পর্যন্ত হয়ে যায় । নিজের সম্পর্কে এক এক সময় ধারণা এক এক রকম হয় । আমার কোন বেল ব্রেক নেই । সকালে যে কাজ করব ঠিক করি , বিকালে তা করতে পারি না । নিজের...


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

nice !

ধন্যবাদ ভাই ।