অফিস বা ফ্রিল্যান্সিংয়ের কাজে প্রতিদিন হাজার হাজার ডেটা এক ফাইল থেকে অন্য ফাইলে কপি-পেস্ট করা এক দুঃস্বপ্নের নাম। ঘণ্টার পর ঘণ্টা কিবোর্ড আর মাউস চেপে এই একঘেয়ে কাজ করতে গিয়ে যেমন সময় নষ্ট হয়, তেমনই একটু এদিক-ওদিক হলেই পুরো ডেটা ভুল হয়ে যায়।
প্রযুক্তির এই যুগে এসে মানুষের এই কাজগুলো যদি একটি স্মার্ট কম্পিউটার কোড নিজে থেকেই করে দেয়, তবে কাজের গতি বাড়ে বহুগুণ। প্রোগ্রামিং ল্যাঙ্গুয়েজ পাইথন ঠিক এই কাজটিই করে দেয় কোনো ক্লান্তি ছাড়াই। এই গাইডে আমরা সহজ ভাষায় শিখব কীভাবে সাধারণ কিছু কোড ব্যবহার করে বড় বড় ডেটা এন্ট্রির কাজ নিমেষেই স্বয়ংক্রিয় করা যায়।
ম্যানুয়াল ডেটা এন্ট্রির সমস্যা এবং অটোমেশনের প্রয়োজনীয়তা
অফিসের যেকোনো ডেটা এন্ট্রির কাজ শুরুর দিকে সহজ মনে হলেও ধীরে ধীরে তা মানসিক ক্লান্তির কারণ হয়ে দাঁড়ায়। মানুষ একটানা দীর্ঘ সময় ধরে একই কাজ করলে তার মনোযোগ কমে যাওয়া খুব স্বাভাবিক ঘটনা। এর ফলে ডেটাতে ভুল এন্ট্রি, টাইপো বা ডুপ্লিকেশনের মতো নানা সমস্যা তৈরি হয়, যা পরে বড় ধরণের ব্যবসায়িক ক্ষতির কারণ হতে পারে। এই পুরো ম্যানুয়াল বা হাতে করা প্রক্রিয়াকে কোডের মাধ্যমে বদলে ফেলাই হলো বর্তমান সময়ের সেরা সমাধান। নিচে মানুষের করা ডেটা এন্ট্রি এবং কোডের মাধ্যমে করা অটোমেশনের একটি স্পষ্ট পার্থক্য দেওয়া হলো।
সময় ও শ্রমের অপচয়
ম্যানুয়ালি ১০ হাজার ডেটা টাইপ বা কপি-পেস্ট করতে একজন মানুষের অন্তত ২ থেকে ৩ দিন সময় লাগতে পারে। একই কাজ যদি একটি কম্পিউটার প্রোগ্রাম দিয়ে করানো হয়, তবে তা সম্পন্ন হতে সর্বোচ্চ কয়েক মিনিট সময় লাগবে। বেঁচে যাওয়া এই বিশাল সময়কে অন্য কোনো সৃজনশীল বা সিদ্ধান্ত নেওয়ার কাজে ব্যবহার করা সম্ভব।
হিউম্যান এরর বা টাইপিংয়ের ভুল
মানুষ যখন ক্লান্ত হয়ে পড়ে, তখন তার চোখে ভুল ধরা পড়ে না; যেমন নামের বানান ভুল হওয়া বা ফোন নম্বরের একটি ডিজিট বাদ পড়া। কোড বা স্ক্রিপ্ট কখনো ক্লান্ত হয় না বলে তার তৈরি করা আউটপুট সবসময় নিখুঁত ও নির্ভুল থাকে।
ব্যবসার প্রবৃদ্ধি ও প্রোডাক্টিভিটি ব্যাহত হওয়া
কর্মচারীরা যদি সারাদিন শুধু ডেটা এন্ট্রির মতো সাধারণ কাজেই ব্যস্ত থাকেন, তবে ব্যবসার মূল পরিকল্পনা বা আইডিয়া নিয়ে ভাবার সময় পান না। অটোমেশন চালু করলে পুরো টিমের প্রোডাক্টিভিটি বা উৎপাদনশীলতা এক ধাক্কায় অনেক বেড়ে যায়।
| কাজের প্যারামিটার | ম্যানুয়াল ডেটা এন্ট্রি | অটোমেটেড ডেটা এন্ট্রি |
| কাজের গতি | মানুষের টাইপিং স্পিডের ওপর নির্ভরশীল (ধীরগতি) | প্রসেসরের গতির ওপর নির্ভরশীল (অবিশ্বাস্য দ্রুত) |
| নির্ভুলতার হার | ক্লান্তিজনিত কারণে ভুলের সম্ভাবনা থাকে | লজিক সঠিক থাকলে শতভাগ নির্ভুল আউটপুট |
| বড় ডেটাসেট হ্যান্ডলিং | লক্ষাধিক ডেটা প্রসেস করা প্রায় অসম্ভব | যেকোনো বড় সাইজের ফাইল সহজে প্রসেস করা যায় |
| কাজের খরচ | জনবল ও অতিরিক্ত সময়ের কারণে খরচ বেশি | একবার কোড তৈরি করলে পরবর্তী খরচ শূন্য |
পাইথন (Python) দিয়ে ডেটা এন্ট্রি অটোমেট করার গাইড: কেন পাইথন সেরা?
বিশ্বজুড়ে ডেটা সায়েন্স এবং অটোমেশনের কাজের জন্য পাইথনকে সবচেয়ে জনপ্রিয় ভাষা হিসেবে গণ্য করা হয়। এর প্রধান কারণ হলো এর কোড লেখার ধরণ অত্যন্ত সহজ এবং মানুষের সাধারণ ইংরেজি ভাষার কাছাকাছি। আপনাকে স্ক্র্যাচ বা একদম শূন্য থেকে কোনো জটিল লজিক তৈরি করতে হয় না, কারণ পাইথনে হাজার হাজার রেডিমেড লাইব্রেরি রয়েছে। এই লাইব্রেরিগুলো ব্যবহার করে যেকোনো সাধারণ ইউজারও সহজেই নিজের একঘেয়ে কাজগুলোকে স্বয়ংক্রিয় করে তুলতে পারেন। যারা কোডিং ব্যাকগ্রাউন্ডের নন, তাদের জন্যও পাইথন (Python) দিয়ে ডেটা এন্ট্রি অটোমেট করার গাইড অনুসরণ করা সবচেয়ে সহজ মাধ্যম।
সহজ সিনট্যাক্স এবং লার্নিং কার্ভ
অন্যান্য প্রোগ্রামিং ভাষা যেমন সি++ বা জাভার মতো পাইথনে কোনো কঠিন ব্র্যাকেট বা সেমিকোলনের ঝামেলা নেই। এর কোড পড়া এবং বোঝা এতটাই সহজ যে কয়েক সপ্তাহের অনুশীলনেই যেকোনো মানুষ কাজের উপযোগী স্ক্রিপ্ট লিখে ফেলতে পারেন।
বিশাল লাইব্রেরি ও ওপেন সোর্স সাপোর্ট
এক্সেল ফাইল রিড করা, ওয়েবসাইট থেকে ডেটা স্ক্র্যাপ করা কিংবা মাউস-কিবোর্ড নিয়ন্ত্রণ করার জন্য পাইথনে আগে থেকেই টুলস বা মডিউল বানানো রয়েছে। ইন্টারনেটে এই লাইব্রেরিগুলো সম্পূর্ণ বিনামূল্যে পাওয়া যায় এবং এদের ব্যবহার করার নিয়মও খুব সহজ।
ক্রস-প্ল্যাটফর্ম কার্যকারিতা
পাইথন কোডের একটি বড় সুবিধা হলো এর ইউনিভার্সাল অ্যাপ্লিকেবিলিটি বা সর্বজনীনতা। আপনি উইন্ডোজ কম্পিউটারে যে কোডটি লিখবেন, তা কোনো পরিবর্তন ছাড়াই ম্যাক (Mac) বা লিনাক্স অপারেটিং সিস্টেমে অনায়াসে রান করা যাবে।
| পাইথনের বৈশিষ্ট্য | কাজের ক্ষেত্রে এর সুবিধা | সাধারণ ব্যবহারকারীদের ওপর প্রভাব |
| সহজ রিডাবিলিটি | কোড সহজেই পড়া ও মডিফাই করা যায় | নন-টেকনিক্যাল ব্যক্তিরাও সহজে শিখতে পারেন |
| ওপেন সোর্স মডিউল | ইন্টারনেট থেকে ফ্রি ডাউনলোড করা সম্ভব | বাড়তি কোনো লাইসেন্স ফি লাগে না |
| কমিউনিটি ফোরাম | যেকোনো সমস্যায় ইন্টারনেটে সমাধান পাওয়া যায় | কোড রাইটিংয়ে আটকে যাওয়ার ভয় থাকে না |
অটোমেশনের জন্য প্রয়োজনীয় মূল পাইথন লাইব্রেরি ও মডিউল
পাইথন দিয়ে ডেটা অটোমেশনের মূল শক্তি লুকিয়ে আছে এর বিভিন্ন রিচ বা সমৃদ্ধ লাইব্রেরিগুলোর মধ্যে। আপনার কাজের ধরণ অনুযায়ী সঠিক লাইব্রেরিটি বেছে নেওয়াই হলো অটোমেশনের প্রধান কৌশল। আপনি যদি এক্সেলের কাজ করতে চান তবে এক ধরণের টুল লাগবে, আবার ওয়েবসাইটের ফর্ম ফিলআপ করতে চাইলে লাগবে অন্য টুল। এই লাইব্রেরিগুলো কম্পিউটারে ইনস্টল করা থাকলে আপনার কোডের সাইজ অনেক ছোট হয়ে আসে এবং জটিল কাজগুলো মাত্র কয়েক লাইনেই সম্পন্ন হয়। আপনি যদি পাইথন (Python) দিয়ে ডেটা এন্ট্রি অটোমেট করার গাইড তৈরি করতে চান, তবে নিচে দেওয়া ৪টি লাইব্রেরি সম্পর্কে স্পষ্ট ধারণা থাকা আবশ্যক।
ওপেনপাইএক্সএল (openpyxl) ও পান্ডাস (Pandas)
এক্সেল ফাইল (.xlsx) সরাসরি কোড দিয়ে এডিট বা তৈরি করার জন্য openpyxl একটি দারুণ লাইব্রেরি। অন্যদিকে, আপনার কাছে যদি লাখ লাখ ডেটার বড় সিএসভি (CSV) ফাইল থাকে, তবে তা ফিল্টার ও প্রসেস করার জন্য Pandas এর কোনো বিকল্প নেই। পান্ডাস যেকোনো বড় ডাটাসেটকে মুহূর্তের মধ্যে রিড করতে পারে।
সেলেনিয়াম (Selenium) ও বিউটিফুলসুপ (BeautifulSoup)
যদি আপনার কাজ হয় কোনো ওয়েবসাইট থেকে তথ্য সংগ্রহ করে তা অন্য কোথাও এন্ট্রি করা, তবে এই দুটি টুল আপনার কাজে আসবে। BeautifulSoup মূলত ওয়েব স্ক্র্যাপিং বা ওয়েবসাইট থেকে ডেটা টেনে বের করার জন্য ব্যবহৃত হয়। আর Selenium ব্যবহার করা হয় ব্রাউজারকে নিজে নিজেই চালনা করার জন্য, যেমন অটো-লগইন বা ফর্ম ফিলিং।
পাইঅটোগুই (PyAutoGUI) ও কিবোর্ড মডিউল
অনেক সময় অফিসে এমন কিছু পুরনো বা উইন্ডোজ-বেসড ডেস্কটপ সফটওয়্যার ব্যবহার করতে হয় যার কোনো ওয়েব এপিআই নেই। এই পরিস্থিতিতে PyAutoGUI আপনার কম্পিউটারের মাউস কার্সারকে নির্দিষ্ট জায়গায় নিয়ে ক্লিক করতে পারে এবং কিবোর্ড দিয়ে স্বয়ংক্রিয়ভাবে টাইপ করতে পারে। এটি মানুষের অবিকল নকল করতে সক্ষম।
| লাইব্রেরির নাম | মূল কাজের ক্ষেত্র | কোন কাজের জন্য সবচেয়ে সেরা |
| Pandas | ডাটাবেস ও বড় ফাইল প্রসেসিং | সিএসভি ও এক্সেল ফাইলের ডেটা ক্লিন ও ফিল্টার করা |
| Selenium | ওয়েব ব্রাউজার কন্ট্রোল ও অটোমেশন | ওয়েবসাইটের ফর্ম স্বয়ংক্রিয়ভাবে ফিলআপ করা |
| openpyxl | মাইক্রোসফট এক্সেল রাইটিং | এক্সেল শিটে ফর্মুলা ও ফরম্যাটিং যোগ করা |
| PyAutoGUI | স্ক্রিন ও মাউস-কিবোর্ড কোঅর্ডিনেশন | ডেস্কটপ সফটওয়্যারে অটো-ক্লিক ও টাইপিং করা |
এক্সেল ও সিএসভি ফাইলের কাজ স্বয়ংক্রিয় করার প্র্যাক্টিক্যাল গাইড
ডিজিটাল কাজের ক্ষেত্রে ফাইলের আদান-প্রদান সাধারণত এক্সেল বা সিএসভি ফরম্যাটেই বেশি হয়ে থাকে। ধরুন, আপনার কাছে প্রতিদিন বিভিন্ন ক্লায়েন্টের পাঠানো ১০টি আলাদা আলাদা এক্সেল শিট আসে এবং আপনার কাজ হলো সব ফাইল থেকে নির্দিষ্ট ডেটা ফিল্টার করে একটি মাস্টার শিটে জমা করা। এই কাজটি প্রতিদিন ম্যানুয়ালি করতে গেলে আপনার অন্তত ২ ঘণ্টা সময় নষ্ট হবে। কিন্তু পাইথন স্ক্রিপ্টের সাহায্যে এই কাজটি মাত্র ১ ক্লিকে ৫ সেকেন্ডের মধ্যে সম্পন্ন করা সম্ভব। এই প্রক্রিয়ায় পাইথন (Python) দিয়ে ডেটা এন্ট্রি অটোমেট করার গাইড বাস্তবায়ন করলে প্রতিদিনের কাজের চাপ অনেকটাই হালকা হয়ে যায়।
পান্ডাস দিয়ে ডেটা ফিল্টারিং ও ক্লিনিং
প্রথমে আপনার কম্পিউটারের টার্মিনালে বা কমান্ড প্রম্পটে pip install pandas openpyxl লিখে লাইব্রেরিগুলো ইনস্টল করে নিতে হবে। এরপর একটি ছোট পাইথন ফাইল তৈরি করে তাতে পান্ডাস মডিউলটি ইম্পোর্ট করতে হবে। পান্ডাসের read_excel() ফাংশন দিয়ে ফাইলটি ওপেন করে খুব সহজেই ডুপ্লিকেট ডেটা বা খালি রো (Missing Values) ছেঁকে বাদ দেওয়া যায়।
Python
import pandas as pd
# ক্লায়েন্টের পাঠানো এক্সেল ফাইলটি ওপেন করা
df = pd.read_excel(‘client_report.xlsx’)
# ডেটা ক্লিনিং: যেসব রো-তে ফোন নম্বর বা নাম নেই, সেগুলো বাদ দেওয়া
cleaned_df = df.dropna(subset=[‘Customer_Name’, ‘Phone_Number’])
# ডুপ্লিকেট ডেটা রিমুভ বা ডিলিট করা
final_df = cleaned_df.drop_duplicates()
একাধিক এক্সেল শিট মার্জ বা একত্রিত করা
আপনার ফোল্ডারে যদি অনেকগুলো এক্সেল ফাইল থাকে, তবে পাইথনের os মডিউল ব্যবহার করে সবগুলো ফাইলের নাম একসাথে রিড করা যায়। এরপর একটি সাধারণ লুপ চালিয়ে পান্ডাসের concat() ফাংশনের সাহায্যে সবগুলো ফাইলকে জোড়া দিয়ে একটি বড় মাস্টার ফাইল তৈরি করা যায়। এতে আপনার আলাদা করে প্রতিটি ফাইল ওপেন করে কপি করতে হয় না।
Python
import os
folder_path = ‘./all_reports/’
all_files = [f for f in os.listdir(folder_path) if f.endswith(‘.xlsx’)]
combined_data = []
for file in all_files:
file_data = pd.read_excel(os.path.join(folder_path, file))
combined_data.append(file_data)
# সমস্ত ফাইলকে একসাথে জোড়া দেওয়া
master_sheet = pd.concat(combined_data, ignore_index=True)
master_sheet.to_excel(‘master_database.xlsx’, index=False)
ফরম্যাটিং ও ফর্মুলা অটোমেশন
ডেটা একত্রিত করার পর অনেক সময় এক্সেল শিটে যোগ, বিয়োগ বা গড়ের মতো বিভিন্ন ফর্মুলা বসানোর প্রয়োজন হয়। openpyxl লাইব্রেরি ব্যবহার করে কোডের মাধ্যমেই নির্দিষ্ট সেলে যেমন A1 বা B2 তে =SUM(C1:C10) এর মতো এক্সেল ফর্মুলা সরাসরি ইনপুট দেওয়া যায়। এর ফলে ফাইলটি যখন এক্সেলে ওপেন করা হবে, তখন ফর্মুলাটি নিজে নিজেই কাজ করবে।
| এক্সেল অটোমেশনের ধাপ | ব্যবহৃত পাইথন ফাংশন | কাজের চূড়ান্ত ফলাফল |
| ফাইল ওপেন ও রিড করা | pd.read_excel() | মেমরিতে এক্সেল ডেটা লোড হওয়া |
| ডুপ্লিকেট বাদ দেওয়া | df.drop_duplicates() | অপ্রয়োজনীয় ডাবল এন্ট্রি মুছে যাওয়া |
| একাধিক ফাইল একত্রীকরণ | pd.concat() | সব ছোট ফাইল মিলে একটি বড় মাস্টার শিট হওয়া |
| ফাইনাল ফাইল সেভ করা | df.to_excel() | কম্পিউটারে নতুন এডিটেড এক্সেল ফাইল জমা হওয়া |
সেলেনিয়াম দিয়ে ওয়েব ফর্ম ফিলিং এবং ব্রাউজার অটোমেশন
অনেক অফিসের এমন কাজ থাকে যেখানে এক্সেল শিটের ডেটা দেখে দেখে কোম্পানির নিজস্ব অনলাইন পোর্টাল বা কোনো সরকারি ওয়েবসাইটে একে একে ইনপুট দিতে হয়। সেলেনিয়াম (Selenium) হলো ব্রাউজার অটোমেশনের রাজা, যা মানুষের মতো অবিকল ব্রাউজার ওপেন করে কাজ করতে পারে। এক্সেল থেকে ডেটা রিড করে তা সেলেনিয়ামের মাধ্যমে ওয়েব ফর্মে পাঠানো বর্তমান যুগের সবচেয়ে জনপ্রিয় অটোমেশন সিস্টেম। এই উন্নত টেকনিকটি ব্যবহার করে পাইথন (Python) দিয়ে ডেটা এন্ট্রি অটোমেট করার গাইড তৈরি করলে ওয়েব-বেসড যেকোনো কাজ সম্পূর্ণ স্বয়ংক্রিয় করা সম্ভব।
ওয়েব এলিমেন্ট (ID, XPath) সনাক্তকরণ
ওয়েবসাইটে স্বয়ংক্রিয়ভাবে টাইপ করার আগে পাইথনকে বলে দিতে হবে সে ঠিক কোন বক্সে লিখবে। এর জন্য ব্রাউজারে ওয়েবসাইটটি ওপেন করে রাইট ক্লিক করে ‘Inspect’ অপশনে যেতে হয়। সেখান থেকে ইনপুট বক্সের আইডি (ID), নাম (Name) বা এক্সপাথ (XPath) খুঁজে বের করতে হবে, যা কোডের ভেতরে ঠিকানা বা অ্যাড্রেস হিসেবে ব্যবহৃত হয়।
টেক্সট ইনপুট এবং বাটন ক্লিক অটোমেশন
ঠিকানা খুঁজে পাওয়ার পর সেলেনিয়ামের send_keys() ফাংশন ব্যবহার করে সেই বক্সে ডেটা পাঠানো যায়। টাইপ করা শেষ হলে ফর্মটি জমা দেওয়ার জন্য সাবমিট বাটনের এক্সপাথ খুঁজে বের করে তার ওপর .click() ফাংশনটি রান করলেই ফর্মটি স্বয়ংক্রিয়ভাবে সাবমিট হয়ে যায়।
Python
from selenium import webdriver
from selenium.webdriver.common.by import By
import pandas as pd
import time
# এক্সেল শিটের ডেটা লোড করা
excel_data = pd.read_excel(‘users.xlsx’)
# স্বয়ংক্রিয়ভাবে ক্রোম ব্রাউজার চালু করা
driver = webdriver.Chrome()
driver.get(‘https://example.com/registration-form’)
for index, row in excel_data.iterrows():
# নাম এবং ইমেইল বক্সে ডেটা টাইপ করা
driver.find_element(By.ID, ‘name_input_box’).send_keys(row[‘Name’])
driver.find_element(By.ID, ’email_input_box’).send_keys(row[‘Email’])
# সাবমিট বাটনে অটো-ক্লিক
driver.find_element(By.ID, ‘submit_btn’).click()
# পরবর্তী পেজ লোড হওয়ার জন্য ২ সেকেন্ড বিরতি
time.sleep(2)
driver.quit()
ড্রপডাউন এবং ফাইল আপলোড হ্যান্ডলিং
ওয়েব ফর্মে শুধু টেক্সট বক্সই থাকে না, অনেক সময় জেলা বা দেশের নাম সিলেক্ট করার জন্য ড্রপডাউন মেনু থাকে। সেলেনিয়ামের Select ক্লাস ব্যবহার করে ইনডেক্স বা টেক্সট ম্যাচ করে ড্রপডাউন অপশন অটো-সিলেক্ট করা যায়। এছাড়া ফাইল বা ছবি আপলোড করার বক্সে সরাসরি ফাইলের লোকাল পাথ বা লিংক পাঠিয়ে দিলে কোনো পপ-আপ উইন্ডো ছাড়াই ফাইল আপলোড হয়ে যায়।
| সেলেনিয়াম অ্যাকশন | কোড কমান্ড | বাস্তব রূপ বা কাজ |
| ব্রাউজারে সাইট ওপেন | driver.get(url) | নির্দিষ্ট ওয়েবসাইট স্ক্রিনে চালু হওয়া |
| টেক্সট বক্সে টাইপ করা | element.send_keys() | মানুষের মতো বক্সে লেখা ফুটে ওঠা |
| বাটনে ক্লিক করা | element.click() | ফর্ম সাবমিট বা নেক্সট পেজে যাওয়া |
| সিস্টেম পজ বা বিরতি | time.sleep(seconds) | ওয়েবসাইট লোড হওয়ার জন্য কোড অপেক্ষা করা |
কোড ক্র্যাশ রোধে এরর হ্যান্ডলিং এবং লগিং সিস্টেম তৈরি
একটি অটোমেশন স্ক্রিপ্ট তৈরি করার পর তা রান করে আপনি হয়তো কফি খেতে গেলেন, কিন্তু এসে দেখলেন মাত্র ১০ নম্বর রো-তে গিয়ে একটি ভুলের কারণে পুরো কোড ক্র্যাশ করে বন্ধ হয়ে গেছে—এটি অত্যন্ত সাধারণ একটি সমস্যা। ইন্টারনেট কানেকশন সাময়িক চলে যাওয়া বা এক্সেলে ভুল ডেটা টাইপ থাকার কারণে কোড মাঝপথে বন্ধ হয়ে যেতে পারে। স্ক্রিপ্ট যেন কোনো ভুলের কারণে হুট করে বন্ধ না হয়ে বাকি কাজ চালু রাখতে পারে, তার ব্যবস্থা করা জরুরি। একটি পেশাদার সিস্টেমে এরর হ্যান্ডলিং যুক্ত করা অত্যন্ত ফলপ্রসূ একটি পদক্ষেপ।
ট্রাই-এক্সেপ্ট (Try-Except) ব্লকের ব্যবহার
পাইথনে কোড ক্র্যাশ ঠেকানোর মূল হাতিয়ার হলো try-except আর্কিটেকচার বা ব্লক। যে কোডটিতে ভুলের ঝুঁকি আছে (যেমন ওয়েব ফর্ম সাবমিট বা ফাইল রিড), তাকে try ব্লকের ভেতরে রাখতে হয়। যদি সেখানে কোনো ভুল বা এরর হয়, তবে কোডটি বন্ধ না হয়ে except ব্লকে চলে যায় এবং আপনার দেওয়া ব্যাকআপ নির্দেশাবলী পালন করে পরবর্তী রো-এর কাজ শুরু করে।
Python
for index, row in excel_data.iterrows():
try:
# ফর্ম ফিলআপের মূল কোড
driver.find_element(By.ID, ‘user_id’).send_keys(row[‘ID’])
driver.find_element(By.ID, ‘submit’).click()
except Exception as e:
# ভুল হলে কোড ক্র্যাশ করবে না, এই অংশটি রান হবে
print(f”রো নম্বর {index} এ সমস্যা হয়েছে। এরর: {e}”)
continue
অটোমেটেড লগ ফাইল (.txt/.log) জেনারেট করা
কোড চলার সময় কোন কোন রো-তে ভুল হয়েছে তা ট্র্যাক করার জন্য একটি লগিং (Logging) সিস্টেম তৈরি করা উচিত। পাইথনের logging মডিউল ব্যবহার করে স্ক্রিপ্ট রান হওয়ার সময় ব্যাকগ্রাউন্ডে একটি .txt বা .log ফাইল তৈরি করা যায়। কোড যখনই কোনো এরর পাবে, তা স্ক্রিনে না দেখিয়ে সেই ফাইলে রো নম্বর সহ লিখে রাখবে, যাতে কাজ শেষে আপনি সহজেই ভুলগুলো সংশোধন করতে পারেন।
ডেটা ভ্যালিডেশন এবং এক্সেপশন ট্র্যাকিং
ফাইল থেকে ডেটা নিয়ে ফর্মে ইনপুট দেওয়ার আগেই তা কোডের মাধ্যমে পরীক্ষা বা ভ্যালিডেশন করে নেওয়া বুদ্ধিমানের কাজ। যেমন—ফোন নম্বরের ঘরে ১০টি ডিজিট আছে কি না বা ইমেইল আইডিতে @ চিহ্নটি আছে কি না তা একটি if-else কন্ডিশন দিয়ে চেক করে নেওয়া যায়। ডেটা সঠিক হলে তবেই স্ক্রিপ্টটি পরবর্তী ধাপে যাবে, অন্যথায় সেই রো-টি স্কিপ বা বাদ দিয়ে লগ ফাইলে ‘Invalid Data’ লিখে রাখবে।
| এরর হ্যান্ডলিং কৌশল | কোড মেকানিজম | মূল সুবিধা বা আউটপুট |
| Try-Except ব্লক | ভুল হলে কোড ক্র্যাশ করা আটকায় | মাঝপথে কাজ বন্ধ না হয়ে শেষ পর্যন্ত চালু থাকে |
| Logging মডিউল | এররগুলো টেক্সট ফাইলে লিখে রাখে | কাজ শেষে কোন ডেটা মিস হয়েছে তা সহজে জানা যায় |
| Data Validation | if-else দিয়ে ডেটার সঠিকতা চেক করা | ডাটাবেজে ভুল তথ্য ইনপুট হওয়া প্রতিরোধ করে |
উইন্ডোজ ও ম্যাক এ স্ক্রিপ্ট শিডিউলিং
আপনার অটোমেশন স্ক্রিপ্টটি সম্পূর্ণ তৈরি হওয়ার পর আপনি নিশ্চয়ই প্রতিদিন সকাল ৯টায় কম্পিউটার অন করে নিজে কোড রান করতে চাইবেন না। অটোমেশনের চূড়ান্ত ধাপ হলো স্ক্রিপ্টটিকে টাইম-বেসড বা সময়-ভিত্তিক ট্র্রিগারের মাধ্যমে স্বয়ংক্রিয় করা, যেন নির্দিষ্ট সময়ে কোড নিজে নিজেই চালু হয়ে যায়। আপনার কম্পিউটার উইন্ডোজ হোক বা ম্যাক, উভয় অপারেটিং সিস্টেমেই ইনবিল্ট বা বিল্ট-ইন টুলস রয়েছে যার মাধ্যমে কোড রান করার প্রক্রিয়াটি সম্পূর্ণ শিডিউল বা নিয়মতান্ত্রিক করা সম্ভব।
উইন্ডোজ টাস্ক সিডিউলার (Windows Task Scheduler)
উইন্ডোজ অপারেটিং সিস্টেমের একটি শক্তিশালী ডিফল্ট টুলের নাম হলো ‘Task Scheduler’। এর মাধ্যমে আপনি একটি নতুন টাস্ক তৈরি করে বলে দিতে পারেন যে প্রতিদিন সকাল ৯টায় বা প্রতি সপ্তাহের রবিবারে আপনার তৈরি করা পাইথন ফাইলটি (.py) নিজে নিজেই ব্যাকগ্রাউন্ডে রান হবে। এর জন্য আপনাকে কোনো বাড়তি সফটওয়্যার ডাউনলোড করতে হবে না এবং কম্পিউটার স্লিপ মোড থেকে জেগেই কাজটি সম্পন্ন করতে পারে।
লিনাক্স ও ম্যাকের ক্রন জব (Cron Jobs)
ম্যাক ওএস (macOS) বা লিনাক্স ব্যবহারকারীদের জন্য স্ক্রিপ্ট শিডিউল করার সবচেয়ে জনপ্রিয় এবং সহজ মাধ্যমের নাম হলো ‘Cron Job’। টার্মিনাল ওপেন করে crontab -e কমান্ডের সাহায্যে একটি নির্দিষ্ট লাইনের কোড লিখে টাইম সেট করে দেওয়া যায়। যেমন—0 9 * * 1-5 python3 script.py লিখে দিলে প্রতি সোম থেকে শুক্রবার সকাল ৯টায় স্ক্রিপ্টটি নিজে নিজেই এক্সিকিউট বা রান হওয়া শুরু করবে।
রিয়েল-টাইম স্ক্রিপ্ট এক্সিকিউশন ট্র্রিগার
টাইম শিডিউল ছাড়াও বিভিন্ন ইভেন্ট বা ঘটনার ওপর ভিত্তি করে কোড রান করা যায়। যেমন—আপনার ইমেইলে নতুন কোনো এক্সেল ফাইল অ্যাটাচমেন্ট সহ আসা মাত্রই পাইথন স্ক্রিপ্টটি নিজে নিজেই ট্র্রিগার বা সচল হয়ে যাবে এবং ফাইলটি ডাউনলোড করে ডেটা এন্ট্রির কাজ শুরু করে দেবে। পাইথনের watchdog লাইব্রেরি ব্যবহার করে কম্পিউটারের কোনো নির্দিষ্ট ফোল্ডারও নজরদারিতে রাখা যায়, ফোল্ডারে নতুন ফাইল পড়া মাত্রই কোড রান হবে।
| অপারেটিং সিস্টেম | ব্যবহৃত শিডিউলিং টুল | কনফিগারেশন টাইপ | মূল সুবিধা |
| Windows | Windows Task Scheduler | গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) | সহজে সেটিংস অপশন দেখে টাইম সেট করা যায় |
| macOS / Linux | Cron Job | টার্মিনাল কমান্ড ভিত্তিক লাইন | খুব কম মেমরি খরচ করে ব্যাকগ্রাউন্ডে চলে |
| Cross-Platform | পাইথন schedule লাইব্রেরি | কোডের ভেতরেই লুপ দিয়ে টাইম সেট | কোড চালু থাকলে নিজে নিজেই বিরতি দিয়ে চলে |
টেক্সট ও ইমেজ ফাইল থেকে ডেটা এক্সট্রাক্ট করার জন্য OCR প্রযুক্তি
ডেটা এন্ট্রির কাজে অনেক সময় এমন পরিস্থিতি আসে যেখানে ডেটাগুলো কোনো এক্সেল বা সিএসভি ফাইলে থাকে না; বরং সেগুলো থাকে স্ক্যান করা কোনো পিডিএফ (PDF) ফাইল, রসিদ (Receipt), বা চালানের (Invoice) ছবির মধ্যে। ছবি দেখে দেখে টাইপ করা মানুষের জন্য অত্যন্ত ক্লান্তিকর একটি কাজ। পাইথনের ওসিআর (OCR – Optical Character Recognition) প্রযুক্তি ব্যবহার করে যেকোনো ছবি বা স্ক্যান করা ফাইল থেকে লেখা বা টেক্সট মুহূর্তের মধ্যে আলাদা করে ডাটাবেজে এন্ট্রি করা সম্ভব।
পাইটেসারেক্ট (PyTesseract) এর ব্যবহার
গুগলের তৈরি ওপেন সোর্স ওসিআর ইঞ্জিন ‘Tesseract’ পাইথনে ব্যবহারের জন্য pytesseract লাইব্রেরিটি অত্যন্ত কার্যকরী। এটি যেকোনো ছবির (.jpg বা .png ফরম্যাট) ভেতরের ক্যারেক্টার বা অক্ষরগুলো রিড করে সেগুলোকে সাধারণ টেক্সট স্ট্রিংয়ে রূপান্তর করতে পারে। এই টেক্সট পরবর্তীতে পান্ডাস বা সেলেনিয়ামের মাধ্যমে যেকোনো ফাইলে ইনপুট দেওয়া যায়।
পিডিএফ (PDF) থেকে টেক্সট ও টেবিল স্ক্র্যাপিং
পিডিএফ ফাইলের ভেতরের টেবিল বা ছক থেকে ডেটা এক্সট্রাক্ট করার জন্য পাইথনে camelot বা pdfplumber এর মতো বিশেষ লাইব্রেরি রয়েছে। এগুলো পিডিএফ ফাইলের গ্রিড বা বর্ডার লাইন এনালাইসিস করে ভেতরের টেবিলের ডেটাকে সরাসরি পান্ডাস ডাটাফ্রেমে রূপান্তর করে দেয়, যা পরে সরাসরি এক্সেল ফাইল হিসেবে সেভ করা যায়। এতে আপনার নতুন করে টেবিলে ডেটা টাইপ করতে হয় না।
Python
import pdfplumber
import pandas as pd
# পিডিএফ ফাইলটি ওপেন করা
with pdfplumber.open(“invoice.pdf”) as pdf:
first_page = pdf.pages[0]
# পেজের ভেতর থেকে টেবিলের ডেটা এক্সট্রাক্ট করা
table = first_page.extract_table()
# ডাটাফ্রেমে রূপান্তর করে এক্সেলে সেভ করা
df = pd.DataFrame(table[1:], columns=table[0])
df.to_excel(“invoice_data.xlsx”, index=False)
অগোছালো ইমেজ ফাইল ফরম্যাটিং
ছবি থেকে টেক্সট রিড করার পর অনেক সময় দেখা যায় ডেটাগুলো এলোমেলো বা অগোছালো অবস্থায় আছে। পাইথনের রেগুলার এক্সপ্রেশন বা re মডিউল ব্যবহার করে সেই টেক্সটের ভেতর থেকে নির্দিষ্ট প্যাটার্ন খুঁজে বের করা যায়; যেমন—ট্যাক্স আইডি, জিপ কোড বা ইমেইল অ্যাড্রেস। অগোছালো টেক্সটের জঙ্গল থেকে শুধুমাত্র প্রয়োজনীয় অংশটুকু ছেঁকে বের করে নেওয়ার এই পদ্ধতিকে ডেটা পার্সিং (Data Parsing) বলা হয়।
| ফাইল ফরম্যাট | ব্যবহৃত পাইথন ওসিআর টুল | এক্সট্রাকশনের ধরণ | চূড়ান্ত আউটপুট |
| স্ক্যান করা ইমেজ (.png/.jpg) | pytesseract (Tesseract OCR) | ছবির ভেতরের টেক্সট রিড করা | সাধারণ এডিটেবল স্ট্রিং বা টেক্সট |
| ডিজিটাল পিডিএফ (.pdf) | pdfplumber / PyPDF2 | ফাইলের ভেতরের ক্যারেক্টার স্ক্র্যাপ | স্ট্রাকচার্ড টেক্সট লাইন |
| পিডিএফ টেবিল বা ছক | camelot-py | টেবিলের গ্রিড ও বর্ডার ডিটেকশন | সরাসরি পান্ডাস ডাটাফ্রেম বা এক্সেল |
ছোট ছোট ট্রিকস দিয়ে দূর করুন কাজের একঘেয়েমি
ডিজিটাল কাজের পরিধি যত বাড়ছে, মানুষের প্রতিদিনের কাজের চাপও তত জটিল হচ্ছে। এই অবস্থায় প্রতিদিন ঘণ্টার পর ঘণ্টা একই টাইপিং বা কপি-পেস্টের কাজ করা বুদ্ধিমানের কাজ নয়, এটি আসলে মেধার অপচয়। পাইথন প্রোগ্রামিং শেখা এখন আর শুধু সফটওয়্যার ইঞ্জিনিয়ারদের কাজ নয়, এটি সাধারণ চাকরিজীবী বা ফ্রিল্যান্সারদের কাজের দক্ষতা বহুগুণ বাড়িয়ে দেওয়ার একটি অন্যতম হাতিয়ার। এই পাইথন (Python) দিয়ে ডেটা এন্ট্রি অটোমেট করার গাইড-এ দেখানো লাইব্রেরি, এরর হ্যান্ডলিং ও শিডিউলিং ট্রিকসগুলো ব্যবহার করে আপনি আপনার কাজের উৎপাদনশীলতা অনেক বাড়াতে পারেন। প্রথমবার স্ক্রিপ্ট তৈরি করতে কিছুটা সময় লাগলেও, এটি দীর্ঘমেয়াদে আপনার শত শত কর্মঘণ্টা ও শ্রম বাঁচিয়ে দেবে। আজই ছোট একটি এক্সেল ফাইল বা ওয়েব ফর্ম দিয়ে আপনার নিজস্ব অটোমেশন জার্নি শুরু করুন এবং একঘেয়ে কাজকে বিদায় জানান।
সাধারণ কিছু জিজ্ঞাসা
১. ডেটা অটোমেশন স্ক্রিপ্ট তৈরি করার জন্য কি আমাকে অনেক বড় সফটওয়্যার ডেভেলপার হতে হবে?
একদমই নয়। ডেটা এন্ট্রি অটোমেশনের জন্য পাইথনের বেসিক লুপ (For Loop), কন্ডিশনাল স্টেটমেন্ট (If-Else) এবং নির্দিষ্ট কিছু লাইব্রেরির ব্যবহার জানলেই চলে। ইন্টারনেটে এই ধরনের কাজের প্রচুর রেডিমেড কোড বা টেমপ্লেট সম্পূর্ণ বিনামূল্যে পাওয়া যায়, যা সামান্য পরিবর্তন করে নিজের কাজের উপযোগী করে নেওয়া সম্ভব।
২. অটোমেটেড স্ক্রিপ্ট ব্যবহার করলে কি ওয়েবসাইট আমার অ্যাকাউন্ট স্প্যাম ভেবে ব্লক করে দিতে পারে?
হ্যাঁ, যদি আপনি খুব দ্রুত বা অস্বাভাবিক গতিতে ওয়েব ফর্মে ডেটা ইনপুট দিতে থাকেন, তবে ওয়েবসাইটের সিকিউরিটি সিস্টেম আপনাকে ‘বট’ বা স্প্যামার ভেবে ব্লক করতে পারে। এই সমস্যা এড়াতে কোডের মধ্যে time.sleep() বা সেলেনিয়ামের WebDriverWait ব্যবহার করে মানুষের মতো স্বাভাবিক গতি ও নির্দিষ্ট সময় পরপর বিরতি বজায় রাখতে হবে।
৩. স্ক্যান করা বা হাতের লেখার পিডিএফ (PDF) ফাইলের ডেটা কি পাইথন দিয়ে অটো-এন্ট্রি করা সম্ভব?
ডিজিটালি স্ক্যান করা ফাইলের টেক্সট পাইথনের Tesseract OCR দিয়ে খুব সুন্দরভাবে রিড করা সম্ভব। তবে হাতের লেখার (Handwritten) ক্ষেত্রে নির্ভুলতার হার কিছুটা কমে যায়। হাতের লেখা ডেটা এক্সট্রাক্ট করার জন্য পাইথনের সাথে গুগলের ক্লাউড ভিশন (Google Cloud Vision API) বা মাইক্রোসফট অ্যাজুরের এআই টুলস কানেক্ট করলে শতভাগ নির্ভুল ফলাফল পাওয়া যায়।
৪. পাইথন অটোমেশন স্ক্রিপ্ট কি উইন্ডোজ এবং ম্যাক (Mac) উভয় অপারেটিং সিস্টেমেই সমানভাবে কাজ করে?
হ্যাঁ, পাইথন একটি অত্যন্ত জনপ্রিয় ক্রস-প্ল্যাটফর্ম ল্যাঙ্গুয়েজ। এর মানে হলো আপনি উইন্ডোজ কম্পিউটারে বসে যে কোডটি লিখেছেন, তা সামান্য বা কোনো পরিবর্তন ছাড়াই ম্যাক ওএস (macOS) কিংবা লিনাক্স (Linux) অপারেটিং সিস্টেমে অনায়াসে রান করতে পারবেন, কাজের ফলাফলে কোনো পরিবর্তন হবে না।
৫. ডাটাবেসে বা এক্সেলে ভুল ডেটা ইনপুট হওয়া কোডের মাধ্যমে কীভাবে আটকানো যায়?
ফাইল থেকে ডেটা নিয়ে ইনপুট দেওয়ার আগেই পাইথনের রেগুলার এক্সপ্রেশন বা কন্ডিশনাল লজিক দিয়ে ডেটার ফরম্যাট চেক করে নেওয়া যায়। যেমন—ফোন নম্বরের ফিল্ডে কোনো ক্যারেক্টার বা অক্ষর আছে কি না তা চেক করা। ডেটা ভুল থাকলে স্ক্রিপ্টটি সেই রো-টি স্কিপ করে লগ ফাইলে নোট রেখে দেবে, ফলে ডাটাবেস সবসময় সুরক্ষিত থাকবে।



