আজ আমি আপনাদের একটা খুবই সিম্পল টেক্সট এডিটর বা ফোনবুক তৈরী করে দেখাব । একজন আমাকে বলেছিলেন যে দোকানের হিসাব রাখার একটা প্রোগ্রাম তৈরী করে দিতে । এটা তারও কাজ করবে । জাষ্ট আপনাকে একটু প্রোগ্রামটা নিজের মত করে এডিট করে নিতে হবে । তবে , একটা কথা হল , এই নোটপ্যাডটা বুঝতে হলে কিন্তু আপনাকে অবশ্যই লিস্ট ও ফাইল এর কাজটা ভালভাবে বুঝতে হবে ।
যাই হোক , আসুন প্রথমে এই টেক্সট এডিটরটার কোড দেখে নিই :
def print_text(texts): print("Texts to show:") for k,v in texts.items(): print("Name:",k, "\tText:",v) print() def add_texts(texts,name,text): texts[name] =text def lookup_texts(texts,name): if name in texts: return "The text is "+ texts[name] else: return name + " was not found" def remove_texts(texts,name): if name in texts: del texts[name] else: print(name," was not found") def load_texts(texts,filename): in_file = open(filename, "rt") while True: in_line =in_file.readline() if not in_line: break in_line =in_line[:-1] name,text =in_line.split(",") texts[name] =text in_file.close() def save_texts(texts,filename): out_file = open(filename, "wt") for k,v in texts.items(): out_file.write(k + ","+ v + "\n") out_file.close() def print_menu(): print('1. Print texts') print('2. Add a texts') print('3. Remove a texts') print('4. Lookup a texts') print('5. Load texts') print('6. Save texts') print('7. Quit') print() texts_list ={} menu_choice = 0 print_menu() while True: menu_choice = int(input("Type in a number (1-7): ")) if menu_choice == 1: print_texts(texts_list) elif menu_choice == 2: print("Add Name and texts") name = input("Name: ") texts = input("texts: ") add_texts(texts_list,name,texts) elif menu_choice == 3: print("Remove Name and texts") name = input("Name: ") remove_texts(texts_list,name) elif menu_choice == 4: print("Lookup texts") name = input("Name: ") print(lookup_texts(texts_list,name)) elif menu_choice == 5: filename = input("Filename to load: ") load_texts(texts_list,filename) elif menu_choice == 6: filename = input("Filename to save: ") save_texts(texts_list,filename) elif menu_choice == 7: break else: print_menu() print("Goodbye")
ভাল করে খেয়াল করে দেখুন , এখানে প্রোগ্রামের পার্ট মূলত ২ টি । একটা হল প্রয়োজনীয় ফাংশন তৈরী করা এবং আর একটা হল ফাংশন গুলোকে সঠিকভাবে কাজে ব্যাবহার করা । তো প্রথমে আসুন দেখে নিই আমরা কী কী ফাংশন তৈরী করেছি ।
১. প্রথম ফাংশনটা হল কোন ফাইল থেকে টেক্সট পড়ার জন্য । এখানে আমরা ২ টি ভ্যারিয়েবল নিয়ে একটা ফর লুপ ইউজ করেছি কোন ফাইলের টেক্সট পড়ার জন্য । তারপর আমরা সেই টেক্সট প্রিন্ট করার জন্য একটা প্রিন্ট ফাংশন ইউজ করেছি ।
২.তারপর আমরা এড টেক্সট নামের একটা ফাংশন তৈরী করে তার মধ্যে ৩ টা ভ্যারিয়েবল নিয়েছি । এরপর texts,name নামের ভ্যারিয়েবল ২ টিকে text নামের ভ্যারিয়েবল এর মধ্যে এড করেছি ।
৩. তারপর আমরা টেক্সট লুকআপ নামের একটা ফাংশন তৈরী করেছি ইনপুট নেওয়া টেক্সট আদেও ফাইলের মধ্যে আছে কিনা তা দেখার জন্য । যদি থাকে তবে সেটা সো করবে । আর না থাকলে টেক্সট was not found লেখাটি সো করবে ।
৪.তারপর আমরা রিমুভ টেক্সট নামের একটা ফাংশন তৈরী করে ব্যাবহার কারী যদি কোন ফাইল ডিলিট করতে চায় তবে সেটা ইনপুট নেবার পর সেটা ডিলিট করার জন্য একটা del ফাংশন ইউজ করেছি ।
৫.তারপর আমরা কোন টেক্সট ফাইল পড়াড় জন্য এটা রিড মুডে নিয়েছি । তারপর আমরা চেক করেছি যে টেক্স তার মধ্যে আছে কিনা । না থাকলে সেখানেই অপারেশন শেষ । আর থাকলে এই কোডগুলো সেটা খুজে বের করবে ও একটা ভ্যারিয়েবলের মধ্যে সেভ করবে ।
৬. সেভ টেক্সট ফাংশন দ্বারা আমরা যে টেক্সট লিখেছি বা এডিট করেছি তা কোন ডাইরেক্টরিতে সেভ করবে । এর সম্পর্কে আমরা আগের পর্বে জেনেছি ।
৭. এরপর আমরা প্রিন্ট অপশন নামের একটা ফাংশন তৈরী করেছি যেটা ব্যাবহার কারীকে আমাদের তৈরী প্রোগ্রামটা সম্পর্কে ভালমত বুঝতে ও ব্যাবহার করতে সাহায্য করবে ।
যাই হোক , প্রাথমিক কাজ শেষ , এবার এই ফাংশন গুলোকে কাজে লাগানোর পালা ।
প্রথমে আমরা texts_list নামের একটা খালি লিষ্ট নিয়েছি ।এ্ই লিষ্টের মধ্যেই পরবর্তীতে আমাদের সব টেক্সট সেভ হবে । তারপর menu_choice নামের একটা খালি ভ্যারিয়েবল নিয়ে তার মান ০ করে দিয়েছি ।
তারপর প্রিন্ট মেনু ফাংশনটাকে কল করে সব মেনু গুলো প্রিন্ট করেছি । তারপর while True নামের একটা ফাংশন নিয়ে আমরা উপরের সব লিষ্ট ও মেনু চয়েজ ঠিক আছে কিনা তা চেক করেছি ।তবে এই কাজটা আপনি “while menu_choice!=7:” এই কোডটা দিয়েও করতে পারেন । কোন সমস্যা নেই । ঠিক থাকলে এবার আমরা মেনু চয়েজ ইনপুট নিয়েছি ।তারপর এখানে সব ব্যাবহার হল if ফাংশনের ।
তারপর আমরা জাষ্ট উপরের তৈরী ফাংশনের সাথে মিল রেখে একেক রকম মেনু ইনপুট নিয়েছি ।
যেমন , যদি মেনু চয়েজ ১ হয় , তবে প্রোগ্রামটা আপনার সিলেক্ট করা টেক্সট ফাইলের সব টেক্সট প্রিন্ট করবে । তবে তার আগে আপনাকে অবশ্যই ফাইলটা লোড করে নিতে হবে ।
তারপর আমরা মেনু চয়েজ ২ এর জন্য আমরা ইউজারের কাছ থেকে ২ টা ভ্যারয়েবলের মাধ্যমে টেক্সট ও তার নাম ইনপুট নিয়ে তা অপর একটা ভ্যারিয়েবল text এর মধ্যে সেভ করে রেখেছি । আমরা যখন মেনু চয়েজ ৬ দিয়ে সেভ সিলেক্ট করবে তখন ওই ফাংশনটা এই ভ্যারিয়েবলের টেক্সটগুলো একটা ফাইলের মধ্যে আপনার পিসির হার্ড ড্রাইভে সেভ করবে । তবে সেভ এর সময় ফাইলের নামটার শেষে অবশ্যই “.txt” লিখে দিবেন । না হলে আননোন ফরম্যাটে সেভ হয়ে যাবে । তারপর আপনি কোন টেক্সট ফাইল লোড করে দেখতে চাইলে মেনু চয়েজ ৫ দিয়ে , সেই ফাইলের নামটা লিখে দিন । প্রোগ্রামটা সেই টেক্সট ফাইল লোড করবে ও তারপর ১ মেনু চয়েজ দিয়ে আপনি সেটা পড়তে পারবেন । আর মেনু চয়েজ ৭ দিলে প্রোগ্রামটা শেষ হয়ে যাবে ।
এই ভাবে পুরো প্রোগ্রামটা বুঝতে চেষ্ট করুন ।
এই হল আপনাদের পাইথন টেক্সট এডিটর এর সবকিছু । আপনি চাইলে এটার আরও অনেক কাষ্টমাইজ করে নিজের মত করে নিতে পারেন । কোন সমস্যা নেই ।
আর শেষে একটা কথা , পাইথনে হ্যাকিং এর জন্য একটা মডিউল নিয়ে আমি ইদানিং একটা ঘাটাঘাটি করছি । এই মডিউলটা দিয়ে কীলগার বা ট্রোজান তৈরী করা যায় । আপনারা যদি আগ্রহী হন তবে একটু সাড়া দিবেন । পুরাপুরি কমপ্লিট করতে পারলে লেখার চেষ্টা করব আশা করি ।
সবাই ভাল থাকবেন । সবাইকে ধন্যবাদ ।
অরিন্দম পাল
মানসিক ভাবে দূর্বল । কোন কাজই কনফিডেন্টলি করতে পারি না , তবুও দেখি কাজ শেষ পর্যন্ত হয়ে যায় । নিজের সম্পর্কে এক এক সময় ধারণা এক এক রকম হয় । আমার কোন বেল ব্রেক নেই । সকালে যে কাজ করব ঠিক করি , বিকালে তা করতে পারি না । নিজের ইচ্ছা মত ঘুরি ফিরি আর খাই । মাঝে মাঝে নিজের ইচ্ছাটাও ঠিকমত বুঝতে পারি না ।
atorvastatin 80mg without prescription buy atorvastatin 40mg online lipitor uk
order atorvastatin without prescription buy lipitor 20mg pill buy lipitor 20mg online
buy baycip sale – buy bactrim 480mg generic augmentin 1000mg cheap
order ciprofloxacin 1000mg generic – keflex order online buy augmentin 375mg online
order retrovir 300 mg online pill – purchase epivir generic buy generic zyloprim 300mg
order glycomet 500mg pill – generic bactrim 960mg buy lincomycin 500mg sale
zidovudine generic – order avalide pills oral allopurinol
buy glycomet generic – buy epivir online lincomycin 500 mg us
clozapine for sale online – coversum over the counter pepcid without prescription
seroquel over the counter – order geodon 40mg online eskalith cheap
purchase clozaril without prescription – buy clozapine tablets famotidine ca
buy generic seroquel – effexor 150mg pills eskalith price
atarax without prescription – buy endep no prescription endep drug
buy anafranil 25mg online cheap – order remeron 15mg generic purchase doxepin generic
atarax generic – purchase buspar pill buy amitriptyline 10mg sale
anafranil 25mg cheap – tofranil over the counter sinequan 25mg drug
buy amoxicillin pills – buy cephalexin 500mg online cheap how to get ciprofloxacin without a prescription
purchase amoxicillin online – buy ceftin 500mg for sale order baycip pills
amoxiclav brand – ethambutol 1000mg over the counter buy cipro without prescription
augmentin online – sulfamethoxazole sale order cipro for sale
buy generic cleocin – cheap cefixime 200mg generic chloramphenicol
purchase cleocin sale – buy vantin online cheap cheap chloramphenicol sale