আমাদের কথা খুঁজে নিন

   

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

আমার প্রিয় টেকটিউনসের পাঠকরা , আশা করি ভাল আছেন । আজ বেশ কিছু দিন পর আমি আবার আপনাদের মাঝে হাজির হলাম পাইথন নিয়ে । বিভিন্ন কাজের কারণে এখন নিয়মিত লেখা হয় না । আজ আমরা পাইথন দ্বারা অপারেটিং সিস্টেমের উপর কীভাবে কাজ করতে হয় তা দেখব । আজ আমি এক একটা কোড লিখব , ও তারপর এর মাহাত্ম বর্ণনা করব ।

তো আসুন , আজকের বিষয় গুলো জেনে নিওয়া যাক ।
আজকে আমরা OS নামক একটা মডিউল নিয়ে কাজ করব । এই মডিউলের কাজ হল অপারেটিং সিস্টেম সম্পর্কিত কাজগুলো করা । তাই সবসময় প্রথমে আমরা OS মডিউল টা ইমপোর্ট করে নেব ।
সর্ব প্রথমে নিচের কোড গুলো লিখুন ।

এর কাজ নিচের কোড গুলোর কাজ হল আপনি পাইথন IDLE তে কোন ডাইরেক্টরিতে কাজ করছেন সেটা বলে দেওয়া । মানে আপনার প্রোগ্রামটা কোথায় সেভ করা আছে সেটা ।
এখানে মূলত কোডটি হল p = os.getcwd() । এর মাধ্যমে আমরা একটি ভ্যারিয়েবল নিয়ে আমাদের কারেন্ট ওয়ার্কিং ডাইরেক্টরিরিটার্ণ করেছি । তারপর ভ্যারিয়েবলটা প্রিন্ট করে আমরা আমাদের কারেন্ট ওয়ার্কিং ডাইরেক্টরি টা দেখেছি ।


এরপর আবার নিচের কোডগুলি লিখুন । এই কোডগুলির কাজ হবে আপনি ধরুন একটা ডাইরেক্টরিতে একটা ফাইল খোজ করছেন । এখন সেই ফাইল সম্পর্কে বিস্তারিত তথ্য আপনকে জানাবে এই কোডগুলো ।
দেখুন , এখানে আমরা প্রথমে একটা ফাইল আছে কিনা তা পরীক্ষা করেছি r নামের একটা ভ্যারিয়েবল নিয়ে os.F_OK কোড টার মাধ্যমে । তারপর এটি আছে কি নেই তা প্রিন্ট করেছি ।

যদি ফাইলটা থাকে তবে এটি ট্রু রিটার্ণ করবে । আর না থাকলে ফলস রিটার্ণ করবে । তারপর , একই ভাবে আমরা os.R_OK ,, os.W_OK,,os.X_OK কোডগুলিণ দ্বারা ফাইলটি রিডেবল কিনা , রাইটেবল কিনা , ও এক্সিকিউটেবল কিনা , তা পরীক্ষা করেছি । হলে ট্রু , আর না হলে ফলস রিটার্ণ করেছে । এই দেখুন এই কোড এর ফলাফল :
এবার দেখুন , কীভাবে একটা ফাইলের ওয়ার্কিং ডাইরেক্টরি চেন্জ করতে হয় ।

সবাই নিচের কোডগুলি লিখুন ।
দেখুন , এখানে আমরা প্রথমে path নারে একটা ভ্যারিয়েবল নিয়ে একটা ডাইরেক্টরি বলে দিয়েছি । তারপর আমরা আমাদের কারেন্ট ওয়ার্কিং ডাইরেক্টরি জেনেছি r = os.getcwd() দ্বারা । এবং আমরা আমাদের কারেন্ট ওয়ার্কিং ডাইরেক্টরি প্রিন্ট করেছি। তারপর os.chdir( path ) কোডটি দ্বারা আমরা আমাদের কারেন্ট ডাইরেক্টরি আমাদের উপরে দেখিয়ে দেওয়া Path এ ট্রান্সফার করেছি ।

তারপর আমরা আবারও আমাদের কারেন্ট ওয়ার্কিং ডাইরেক্টরি জেনেছি ও এটা আমাদের চেন্ঝ করা ডাইরেক্টরি টাই সো করেছে ।
এবার আমরা দেখব কীভাবে কোন ফাইল পড়তে হয় পাইথনের মাধ্যমে । আসুন আমরা সবাই নিচের কোডগুলো লিখি ।
দেখুন , এখানে আমরা প্রথমে f ভ্যারিয়েবলের মাধ্যমে আমাদের কাঙ্খিত ফাইলটা ওপেন করেছি । এরপর আমরা os.read(f,12) এর মাধ্যমে এর ভিতর কী লেখা আছে তা পড়েছি ও তারপর সেটা প্রিন্ট করেছি ।

তারপর ফাইলটা ক্লোজ করে দিয়েছি । আমি এখানে (f,27) লিখেছি কারণ আমি ২৭ টি অক্ষর বা সংখ্যা পড়তে চাই । আপনি এ সংখ্যাটি পাল্টে নিজের মত করে নিতে পারেন আপনি যে কয়টি সংখ্যা পড়তে চান সে কয়টি ।
এরপর আসুন দেখে নিই কীভাবে একটা ফাইলের পরিসংখ্যান করতে হয় । সবাই নিচের কোডগুলো লিখুন ।


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

এরপর আমরা os.rename("oldname","newname") কোড দ্বারা আমারে পুরান ফাইল নেম পরিবর্তন করে নতুন নাম দিয়েছি । এখানে আপনারা যে ফাইলের নাম পরিবর্তন করতে চান ওল্ডফাইল নেম এর স্থলে সেই নাম , ও নিউ ফাইলসেম এর স্থলে নতুন নাম বসাবেন । এরপর আমরা আবার ডাইরেক্টরির সকল ফাইলের নাম প্রিন্ট করেছি print ("the dir is: ",os.listdir(os.getcwd())) কোড দ্বারা ।
এবার আমরা দেখব কীভাবে একটা ফাইল ডিলিট করতে হয় । এটা খুবই সিম্পল ।

সবাই নিচের কোডগুলি লিখুন ।
দেখুন , এখানে আমরা প্রথমে কারেন্ট ডাইরেক্টরির ফাইল গুলি প্রিন্ট করেছি print ("The dir is: ",os.listdir(os.getcwd())) কোড দ্বারা । এরপর তাদের মধ্যে aa.txt নামের একটা ফাইল আমরা রিমুভ করেছি উপোরোক্ত কোড দ্বারা । তারপর সেই ফাইল রিমুভ হয়েছে কিনা সেটা সিওর হবার জন্য আমরা আবারও ডাইরেক্টরির ফাইলগুলি প্রিন্ট করে দেখেছে । আপনারা কারেন্ট ডাইরেক্টরির ফাইল প্রিন্ট না করে ডাইরেক্টলি ফাইল প্যাথ বনিয়ে ফাইল ডিলিট করতেও পারেন ।


এবার আমরা দেখব পাইথনে OS মডিউল দিয়ে কীভাবে ফাইল নিয়ে কত প্রকার কাজ করা যায় । আসুন আমরা দেখে নিই । সবাই নিচের কোডটি লিখুন ।
দেখুন , এখান এ আমরা ফাইল ওপেন করেছি ও সেই ফাইলে কিছু লিখেছি । এখন আপনাদের জানতে হবে এই foo.txt এর পরের অংশটুকু কত প্রকার ও কী কী হতে পারে ।

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


আজ আর লিখে পারছি না । এগুলো ছাড়াও এই মডিউলের আন্ডারে অনেক কিছু আছে । তবে , এইগুলো আপনাদের কাজে লাগতে পারে বলে আমি শুধু এই গুলোই শেয়ার করলাম । আর বাকী গুলো একটু কষ্ট করে দেখে নিবেন গুগল বা অন্য কোথাও সার্চ দিয়ে ।
কিছুদিন আগে ফেসবুকে একজন আমাকে জিজ্ঞাসা করেছিলেন যে > পাইথনের জন্য কোন কম্পাইলার আছে কিনা ।

আসলে আমার পাইথনের কোন কম্পাইলরের কথা জানা নেই । তবে পাইথন ২.৭ পর্যন্ত যেকোন প্রোগ্রামকে .exe তে মাইগ্রেট করা যায় py2exe নামক একটা সফটওয়ার দিয়ে । আর পাইথনের IDLE ই হল পাইথনের জন্য কম্পাইলর । আপনার py2exe ইউজ করতে হলে পাইথন ২.৭ এর উপর একটু ধারণা রাখতে হবে । কারণ এটার সর্বশেষ রিলিজ হল পাইথন ২.৭ এর জন্য ।

এটা এখান থেকে ডাউনলোড করতে পারেন । আর আশা করছি পাইথন ৩.৩ এর জন্যও py2exe এর ভার্সন খুবই দ্রুত বের হবে । আর যদি কেউ ট্রাই করতে চান অন্যভাবে , তাহলে গুগলে সার্চ দিয়ে দেখতে পারেন । আরেকটা সফটওয়ার আমার জানা আছে যেটার নাম হল CYTHON । এটা এখান থেকে ডাউনলোড করতে পারেন ।


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

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

আমি আশা করি আপনারা আমার মত অকাজের প্রোগ্রামার হবেন না । একটু কষ্ট করে ডেইলি প্রাকটিস করবেন । এখন নিয়মিত লেখার সুযোগ পাই না । তবে হাতে সময় পেলেই লিখতে চেষ্টা করি । আবার কবে লিখতে পারব তা বলতে পারছি না ।

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

তাতে আপনার ইংলিশ স্কিল ডেভলপও করবে ।
সবাই ভাল থাকবেন । আশা করি আবার দেখা হবে । ধন্যবাদ ।


সোর্স: http://www.techtunes.com.bd/     দেখা হয়েছে বার

অনলাইনে ছড়িয়ে ছিটিয়ে থাকা কথা গুলোকেই সহজে জানবার সুবিধার জন্য একত্রিত করে আমাদের কথা । এখানে সংগৃহিত কথা গুলোর সত্ব (copyright) সম্পূর্ণভাবে সোর্স সাইটের লেখকের এবং আমাদের কথাতে প্রতিটা কথাতেই সোর্স সাইটের রেফারেন্স লিংক উধৃত আছে ।

প্রাসঙ্গিক আরো কথা
Related contents feature is in beta version.