কিভাবে পাইথনের মাধ্যমে পিডিএফ ফাইল থেকে কোন নির্দিষ্ট ওয়ার্ডকে বা অক্ষরকে সার্চ করে বের করা যায়। How to search spesific word/character from pdf file with python.

এখানে সম্পূর্ণ কোডিং দেওয়া হল। চাইলে এখান থেকে কপি করে বসিয়ে দিতে পারেন। শুধুমাত্র ("project.pdf") ফাইল নেমটা আপনাকে পরিবর্তন করে আপনার ফাইলের নাম বসাতে হবে।

ফাইলটার প্রতিটি কমান্ড কিভাবে কাজ করে সেটা জানতে এখনে  ক্লিক করুন

মেইন টেক্সটঃ

import PyPDF2 as pdf

file = open("project.pdf","rb")

pdf_reader = pdf.PdfFileReader(file)

page_num = range(pdf_reader.getNumPages())

page_read =""

for i in page_num:

page = pdf_reader.getPage(i)

page_read += page.extractText().

page_read # অথবা print(page_read)

if ("Hafizur" in page_read) or ("shahjalal" in page_read):

    print("Yes! This word included here.")

else:

    print("Sorry! Try another pdf")


ব্যাখ্যাঃ

১ম ধাপ -

import PyPDF2 as pdf

file = open("project.pdf","rb")

pdf_reader = pdf.PdfFileReader(file)

page_num = range(pdf_reader.getNumPages())

page_read =""

for i in page_num:

    page = pdf_reader.getPage(i)

    page_read += page.extractText()


এখানে page_read ="" নামে একটা ব্লাংক পেজ ক্রিয়েট করা হয়েছে, কারণ আমরা যখন ফর লুপের ভিতরে সবগুলা পেজ ইনডেক্সিং করে (page = pdf_reader.getPage(i))

দেখার জন্য কাজ করব তখন এই ব্লাংক পেজটাকে আমাদের উক্ত ফর লুপের সাথে কনকেটিনেশন(page_read += page.extractText()) করে দিতে হবে। নতুবা আমরা আমাদের ফাইলটাকে রিড

করতে পারব না।

এখন প্রশ্ন হল আমরা কেন page_read কে কনকেটিনেশন করব? আমরা যদি কনকেটিনেশান (page_read += page.extractText()) না করি তাহলে

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

কনকেটিনেশান করে দিতে হবে যাতে পাইথন আমাদের পিডিএফ ফাইলের সবগুলা পেজকে ইনডেক্সিং এর মাধ্যমে এক এক করে প্রথম থেকে শেষ পর্যন্ত

শো করায়। এখন যদি আমরা আমাদের সব ফাইল রিড হয়েছে কি না সেটা দেখতে চাই তাহলে print(page_read) অথবা শুধু page_read দিয়ে দেখে

নিতে পারি। সব গুলা পেজ যখন আমাদের শো করাবে তখন আমরা যদি চাই আমরা উক্ত ফাইলের মধ্যে কোন একটা নির্দিষ্ট word বা অক্ষর আছে কি না

সেটা চেক করতে চাই তাহলে সেটাও আমরা সহজে করতে পারব। এর জন্য আমদের সিমপ্লি if/else এর কাজ করতে হবে। এবং নির্দিষ্ট ওয়ার্ড বা অক্ষর

ফাইলের ভিতর আছে কিনা সেটা চেক করার জন্য আমাদেরকে মেম্বারশিপ (membership) অপারেটর ব্যবহার করতে হবে।

২য় ধাপ -

page_read

if ("Hafizur" in page_read):

    print("Yes! This word included here.")

else:

    print("Sorry! Try another pdf")


 ৩য় ধাপ -

আমরা যদি একাধিক ওয়ার্ড আছে কি না সেটা দেখতে চাই তাহলে আমরা logical operator (and/or/not) ব্যবহার করব। যেমনঃ

 

if ("Hafizur" in page_read) or ("shahjalal" in page_read):

    print("Yes! This word included here.")

else:

    print("Sorry! Try another pdf")


লিখেছেনঃ মোঃ হাফিজুর রহমান  

সহজোগিতায়ঃ মোঃ শাহজালাল ইসলাম



Post a Comment

Previous Post Next Post