পাইথনে, যখনই আমরা ফাইলগুলি পড়তে বা লেখার চেষ্টা করি তখন আমাদের কোনও লাইব্রেরি আমদানি করতে হবে না কারণ এটি স্থানীয়ভাবে পরিচালনা করা হয়।
একটি ফাইল অবজেক্ট পেতে বিল্ট-ইন ওপেন ফাংশন ব্যবহার করার জন্য আমরা প্রথমেই যা করব।
ওপেন ফাংশন একটি ফাইল খোলে এবং একটি ফাইল অবজেক্ট রিটার্ন করে। ফাইল অবজেক্টগুলিতে পদ্ধতি এবং বৈশিষ্ট্য রয়েছে যা পরবর্তীতে তথ্য পুনরুদ্ধার করতে বা আপনার খোলা ফাইলটি ম্যানিপুলেট করতে ব্যবহার করা যেতে পারে৷
ফাইল কি?
ফাইলে কোনো অপারেশন করার আগে প্রথমেই জেনে নেওয়া যাক ফাইল কী? ফাইলটি সম্পর্কিত তথ্য সংরক্ষণ করার জন্য ডিস্কে একটি নামযুক্ত অবস্থান, যেহেতু ফাইলটির কিছু নাম এবং অবস্থান রয়েছে, এটি হার্ড ডিস্কে সংরক্ষণ করা হয়৷
পাইথনে, ফাইল অপারেশন নিম্নলিখিত ক্রমে সঞ্চালিত হয়:
- একটি ফাইল খোলা হচ্ছে।
- পড়ুন বা লিখুন অপারেশন।
- একটি ফাইল বন্ধ করা হচ্ছে।
একটি ফাইল খোলা- Open() ফাংশন
পড়ার বা লেখার উদ্দেশ্যে একটি ফাইল খুলতে, আমাদের অবশ্যই বিল্ট-ইন open() ফাংশন ব্যবহার করতে হবে।
open() ফাংশন দুটি আর্গুমেন্ট ব্যবহার করে। প্রথমটি হল ফাইলটির নাম এবং দ্বিতীয়টি হল কোন উদ্দেশ্যে আমরা এটি খুলতে চাই। পড়ার বা লেখার জন্য?
পাইথনে একটি ফাইল অবজেক্ট খোলার সিনট্যাক্স হল:
File_obj =open("ফাইলের নাম", "মোড")
কোথায়
-
File_obj যাকে হ্যান্ডেলও বলা হয় সেটি হল ফাইল অবজেক্ট যোগ করার ভেরিয়েবল।
-
ফাইলের নাম:ফাইলের নাম।
-
মোড:দোভাষীকে জানাতে যে ফাইলটি কোন উপায়ে ব্যবহার করা হবে।
>>> f =open("pytube1.py") # বর্তমান ডিরেক্টরিতে খোলা ফাইল>>> f =open(r"c:\users\rajesh\Documents\readme.txt") # থেকে ফাইল খুলুন প্রদত্ত পথ
মোড আর্গুমেন্ট
আমরা উপরে থেকে দেখতে পাচ্ছি, open() ফাংশনে দ্বিতীয় আর্গুমেন্ট দেওয়া ঐচ্ছিক যা মোড। আমরা একটি ফাইল খোলার সময় মোড নির্দিষ্ট করতে পারি .i.e. আমরা 'r' পড়তে চাই, 'w' লিখতে চাই বা ফাইলে 'a' যোগ করতে চাই। আমরা টেক্সট মোড বা বাইনারি মোডে ফাইল খুলতে চাই কিনা তাও আমরা নির্দিষ্ট করতে পারি।
ডিফল্ট মোড হল টেক্সট মোড যেখানে আমরা ফাইল থেকে পড়ার সময় স্ট্রিং পাই।
নিচে open() ফাংশনে সমর্থিত বিভিন্ন মোড রয়েছে:
পাইথন ফাইল মোড
মোড | বিবরণ |
---|---|
'r' | পড়ার জন্য একটি ফাইল খুলুন। (ডিফল্ট) |
'w' | লেখার জন্য একটি ফাইল খুলুন। এটি বিদ্যমান না থাকলে একটি নতুন ফাইল তৈরি করে বা যদি এটি বিদ্যমান থাকে তবে ফাইলটি ছাঁটাই করে৷ |
'x' | একচেটিয়া সৃষ্টির জন্য একটি ফাইল খুলুন। যদি ফাইলটি ইতিমধ্যেই বিদ্যমান থাকে তবে অপারেশন ব্যর্থ হয়৷ | ৷
'a' | ফাইলটিকে ছাঁটাই না করে শেষে যুক্ত করার জন্য খুলুন। এটি বিদ্যমান না থাকলে একটি নতুন ফাইল তৈরি করে৷ | ৷
't' | টেক্সট মোডে খুলুন। (ডিফল্ট) |
‘b’ | বাইনারী মোডে খুলুন। |
‘+’ | আপডেট করার জন্য একটি ফাইল খুলুন (পড়া এবং লেখা) |
>>> f =open("pytube1.py") #equivalent to 'r' or 'rt'>>> f =open("pytube1.py", "w")# টেক্সট মোডে লিখুন>>> f =open("color3.jpg", "r+b")# বাইনারি মোডে পড়ুন এবং লিখুন
ডিফল্ট এনকোডিং প্ল্যাটফর্ম নির্ভর। উইন্ডোজে, এটি 'cp1252' কিন্তু লিনাক্সে 'utf-g'।
এটি এনকোডিং প্রকার নির্দিষ্ট করার সুপারিশ করা হয়:
>>> f =open("pytube1.py", mode ="r", এনকোডিং ='utf-8')
একটি পাঠ্য ফাইল তৈরি করুন
যেকোন টেক্সট এডিটর বা আপনার পছন্দ ব্যবহার করে পাইথনে একটি সাধারণ টেক্সট ফাইল তৈরি করা যাক, যদিও আমি পাইথন শেল ব্যবহার করছি ☺।
>>> # আপনার বর্তমান কার্যকারী ডিরেক্টরিতে "textfile.txt" নামে একটি টেক্সট ফাইল তৈরি করুন>>> f =open("textfile.txt", "w")>>> #above textfile নামে একটি ফাইল তৈরি করবে .txt আপনার ডিফল্ট ডিরেক্টরিতে>>> f.write("Hello, Python")13>>> f.write("\nএটি আমাদের প্রথম লাইন")23>>> f.write("\nএটি আমাদের দ্বিতীয় লাইন")24>>> f.write("\nআরো কেন লিখছি?, কারণ আমরা পারি :)")37>>> f.close()
আমরা দেখতে পাচ্ছি আমাদের বর্তমান কার্যকারী ডিরেক্টরিতে textfile.txt নামে একটি নতুন ফাইল তৈরি হয়েছে এবং নতুন তৈরি করা ফাইলটি খোলার সময় আমরা দেখতে পাই:
পাইথনে একটি টেক্সট ফাইল পড়া
পাইথনে একটি টেক্সট ফাইল পড়তে, আমরা একাধিক উপায় ব্যবহার করতে পারি।
যদি আপনি ফাইলের সমস্ত অক্ষর ধারণ করে এমন একটি স্ট্রিং বের করতে চান। আমরা নিম্নলিখিত পদ্ধতি ব্যবহার করতে পারি:
file.read()
নীচে উপরের সিনট্যাক্স বাস্তবায়নের জন্য প্রোগ্রাম:
>>> f =open("textfile.txt", "r")>>> f.read()'হ্যালো, পাইথন\nএটি আমাদের প্রথম লাইন\nএটি আমাদের দ্বিতীয় লাইন\nআরো কেন লিখছি?, কারণ আমরা পারি :)'
আপনি যদি একটি ফাইল থেকে নির্দিষ্ট সংখ্যক অক্ষর পড়তে চান তবে আমরা এটি খুব সহজেই করতে পারি।
>>> f =open("textfile.txt", "r")>>> print(f.read(13))হ্যালো, পাইথন
যাইহোক, যদি আপনি লাইন দ্বারা একটি ফাইল লাইন পড়তে চান তাহলে আপনি readline() ফাংশন ব্যবহার করতে পারেন।
>>> f =open("textfile.txt", "r")>>> print(f.read(13))Hello, Python>>> print(f.readline())>>> f =open("textfile.txt", "r")>>> print(f.readline())Hello, Python>>> print(f.readline())এটি আমাদের প্রথম লাইন>>> প্রিন্ট(f। readline())এটি আমাদের দ্বিতীয় লাইন>>> print(f.readline())কেন বেশি লিখছি?, কারণ আমরা পারি :)
অথবা আপনি ফাইলের প্রতিটি লাইন ফিরিয়ে দিতে চান, সঠিকভাবে আলাদা করে, আমরা readlines() ফাংশন ব্যবহার করতে পারি।
>>> f =open("textfile.txt", "r")>>> print(f.readlines())['Hello, Python\n', 'এটি আমাদের প্রথম লাইন\n', 'এটা আমাদের দ্বিতীয় লাইন\n', 'আরো লিখি কেন?, কারণ আমরা পারি :)']
প্রতিটি লাইনের উপরে কমা দিয়ে আলাদা করা হয়েছে।
একটি ফাইল অবজেক্টের উপর লুপ করা
যদি আপনি ফাইলের সমস্ত লাইন সবচেয়ে কাঠামোগত এবং দক্ষ উপায়ে পড়তে বা ফেরত দিতে চান, আমরা লুপ ওভার পদ্ধতি ব্যবহার করতে পারি।
>>> f =open("textfile.txt", "r")>>> লাইনের জন্য f:print(line)হ্যালো, পাইথন এটি আমাদের প্রথম লাইনএটি আমাদের দ্বিতীয় লাইন কেন আরও লিখছি?, কারণ আমরা পারি :)
একটি ফাইলে লেখা
একটি ফাইলে লেখা সহজ, আপনাকে কেবল ফাইলটি খুলতে হবে এবং আপনি যে ফাইলটি লিখতে চান সেটি পাস করতে হবে৷
এই পদ্ধতিটি আমরা একটি বিদ্যমান ফাইলে ডেটা যুক্ত করতে ব্যবহার করতে পারি। আপনি ফাইলে ডেটা লেখার পরে একটি নতুন লাইন শুরু করতে EOL অক্ষর ব্যবহার করুন৷
>>> f =open("textfile.txt", "w")>>> f.write("'PYTHON এর প্রেমে পড়ার' অনেক কারণ আছে")54>>> f.write ("\nদেখুন, আমি আরও একটি লাইন যোগ করেছি :)।")36>>> f.close()>>> f =open("textfile.txt", "r")>>> f লাইনের জন্য:প্রিন্ট(লাইন)'পাইথনের প্রেমে পড়ার অনেক কারণ আছে'দেখুন, আমি আরও একটি লাইন যোগ করেছি :)।
একটি ফাইল বন্ধ করা
একবার আপনি ফাইলে কাজ করার পরে, আপনাকে জিনিসগুলি শেষ করতে f.close() কমান্ডটি ব্যবহার করতে হবে। এর সাথে, আমরা ফাইলটি সম্পূর্ণরূপে বন্ধ করে দিয়েছি, ব্যবহার করা সমস্ত সংস্থান বন্ধ করে দিয়েছি এবং অন্য কোথাও ব্যবহার করার জন্য সিস্টেমের জন্য সেগুলিকে খালি করে দিয়েছি৷
>>> f =open("textfile.txt", "r")>>> f.close()>>> f.readlines()ট্রেসব্যাক (সর্বশেষ কল শেষ):ফাইল "", লাইন 1, f.readlines()ValueError:বন্ধ ফাইলে I/O অপারেশন।
একবার ফাইলটি বন্ধ হয়ে গেলে, ফাইল অবজেক্টটি ব্যবহার করার যেকোনো প্রচেষ্টা একটি ত্রুটির মাধ্যমে হবে৷
বিবৃতি সহ
উইথ স্টেটমেন্ট ফাইল অবজেক্টের সাথে ব্যবহার করা যেতে পারে। দুটি ব্যবহার করে (বিবৃতি এবং ফাইল অবজেক্ট সহ) আমরা পাই, আমাদের প্রোগ্রামে অনেক পরিষ্কার সিনট্যাক্স এবং ব্যতিক্রম পরিচালনা।
আরেকটি সুবিধা হল যে কোনো ফাইল খোলা হলে তা স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে একবার আমরা ফাইল অপারেশন সম্পন্ন করে ফেলি
সিনট্যাক্স
ফাইল হিসেবে open("filename") সহ:
উদাহরণ:
>>> open("textfile.txt") সহ f:for লাইন f:print(line)
আউটপুট
'পাইথনের প্রেমে পড়ার' অনেক কারণ আছে দেখুন, আমি আরও একটি লাইন যোগ করেছি :)।
বিবৃতি দিয়ে ফাইলে লেখাও সহজ (যেমন আপনি এখন অনুমান করেছেন)।
>>> open("textfile.txt", "a") এর সাথে f:f.write("\nহ্যালো, পাইথন-এখানে আমি আবার এসেছি!")38>>> open("textfile) এর সাথে। txt") f:ফর লাইন f:প্রিন্ট(লাইন)এ 'পাইথনের প্রেমে পড়ার' অনেক কারণ আছে দেখুন, আমি আরও একটি লাইন যোগ করেছি :) হ্যালো, পাইথন-এখানে আমি আবার এসেছি!প্রে>একটি পাঠ্য ফাইলে লাইন বিভক্ত করা
আমরা পাইথন স্প্লিট() ফাংশন ব্যবহার করে একটি টেক্সট ফাইল থেকে নেওয়া লাইনগুলিকে বিভক্ত করতে পারি। আমরা আপনার পছন্দের যেকোন অক্ষর ব্যবহার করে আমাদের পাঠ্যকে বিভক্ত করতে পারি তা হয় স্পেস অক্ষর বা কোলন বা অন্য কিছু হতে পারে।
>>> ওপেন("textfile.txt", "r") হিসাবে f:data =f.readlines() হিসাবে ডেটাতে লাইনের জন্য:words =line.split() print(words)আউটপুট
<প্রে> ['দেখুন,', 'i', 'have', 'added', 'one', 'more', 'line', ':).']['Hello,', 'Python-Here', 'i ', 'আসুন', 'একবার', 'আবার!']এবং আমরা একটি স্থানের পরিবর্তে একটি কোলন ব্যবহার করে পাঠ্যকে বিভক্ত করতে যাচ্ছি (উপরের মতো), আমাদের শুধু line.split() পরিবর্তন করতে হবে line.split( “:”) এবং আমাদের আউটপুট এমন কিছু হবে:["'পাইথনের প্রেমে পড়ার' অনেক কারণ আছে\n"]['দেখুন, আমি আরও একটি লাইন যোগ করেছি ', ')।\n'] ['হ্যালো, পাইথন- এখানে আমি আবার এসেছি!']