रुपेश पवार
IT Professional 5+ वर्षांचा अनुभव
प्रकाशित
10 August २०२६
वाचण्याचा वेळ
12 मिनिटे
स्तर
Beginner
Table of Contents
Python मध्ये file handling म्हणजे काय, open() function कसं वापरायचं, file read / write / append कशी करायची आणि with statement व exception handling वापरून सुरक्षित code कसा लिहायचा हे सर्व सोप्या मराठी भाषेत, प्रॅक्टिकल उदाहरणांसह.
Python शिकताना आपण आतापर्यंत Variables, Loops, Conditional Statements आणि Functions शिकलो. पण खरं प्रोग्रामिंग तेव्हा सुरू होतं जेव्हा आपला प्रोग्राम data कायमस्वरूपी साठवतो आणि यासाठी लागतं File Handling. या लेखात आपण Python File Handling संपूर्ण, सुरुवातीपासून शेवटपर्यंत, मराठीत शिकणार आहोत.
File Handling म्हणजे काय? (What is File Handling in Python)
File Handling म्हणजे प्रोग्रामच्या मदतीने एखादी file तयार करणे, ती उघडणे (open करणे), त्यातील data वाचणे (read करणे), नवीन data लिहिणे (write करणे) आणि शेवटी ती file बंद (close) करणे या सर्व क्रियांना एकत्रितपणे File Handling म्हणतात. सोप्या भाषेत सांगायचं तर, आपला Python प्रोग्राम आणि आपल्या computer च्या storage मधील file यांच्यामध्ये data ची देवाणघेवाण (data flow) सुरक्षितपणे आणि व्यवस्थित पद्धतीने घडवून आणणं, हेच File Handling चं मुख्य काम आहे.
File Handling ची गरज का पडते?
- Data कायमस्वरूपी साठवण्यासाठी: प्रोग्राम बंद झाला तरी data नष्ट होऊ नये यासाठी.
- External files सोबत काम करण्यासाठी: .txt, .csv, .json यासारख्या files मधील माहिती वापरण्यासाठी.
- मोठ्या data चं efficient management: संपूर्ण data एकाच वेळी memory मध्ये न ठेवता, हवा तेवढाच भाग वाचता येतो.
- Automation साठी: config files वाचणं, logs साठवणं, reports generate करणं यासारखी कामं आपोआप करण्यासाठी.
File उघडणे — open() Function
Python मध्ये कोणतीही file उघडण्यासाठी built-in open() function वापरलं जातं. या function ला file चं नाव (किंवा path) आणि mode हे दोन arguments दिले जातात.
file = open('filename.txt', 'mode')- filename.txt — जी file उघडायची आहे तिचं नाव किंवा संपूर्ण path.
- mode — file कोणत्या प्रकारे उघडायची आहे (फक्त वाचण्यासाठी, लिहिण्यासाठी, जोडण्यासाठी इ.)
लक्षात ठेवा: जर mode दिला नाही, तर Python आपोआप 'r' (read mode) वापरतो.
f = open("data.txt", "r") print(f)वरील code data.txt ही file read mode मध्ये उघडतो. जर file अस्तित्वात असेल, तर तो त्या file शी जोडलेला एक file object return करतो; file नसेल तर Python FileNotFoundError ही error देतो.
वरील code data.txt ही file read mode मध्ये उघडतो. जर file अस्तित्वात असेल, तर तो त्या file शी जोडलेला एक file object return करतो; file नसेल तर Python FileNotFoundError ही error देतो.
File Modes — कोणता mode कधी वापरायचा?
| Mode | पूर्ण नाव | उपयोग |
|---|---|---|
r | Read | फक्त वाचण्यासाठी (default). File नसेल तर error येते. |
w | Write | लिहिण्यासाठी. File नसेल तर नवीन तयार होते; असेल तर जुना content पूर्ण मिटतो. |
a | Append | शेवटी नवीन data जोडण्यासाठी. जुना content कायम राहतो. |
r+ | Read + Write | वाचणे आणि लिहिणे दोन्ही; file अस्तित्वात असावी लागते. |
w+ | Write + Read | लिहिणे व वाचणे; जुना content मिटतो. |
a+ | Append + Read | जोडणे व वाचणे; जुना content कायम राहतो. |
rb / wb | Binary Read/Write | images, pdf यासारख्या binary files साठी. |
File बंद करणे – close()
file.close() ही method file बंद करते आणि त्यासाठी वापरलेले system resources मोकळे करते. जर file write किंवा append mode मध्ये उघडली असेल, तर close() केल्यावरच सर्व बदल (changes) व्यवस्थित save होतात याची खात्री होते.
file = open("data.txt", "r") # file वर काम करा file.close()File उघडल्यानंतर ती close न केल्यास memory leak आणि data corruption सारख्या समस्या येऊ शकतात. पुढे आपण with statement शिकणार आहोत, जे हे काम आपोआप करतं.
File Properties तपासणे
File उघडल्यानंतर तिच्याबद्दलची काही महत्त्वाची माहिती आपण तपासू शकतो:
f = open("data.txt", "r") print("Filename:", f.name) print("Mode:", f.mode) print("Is Closed?", f.closed) f.close() print("Is Closed?", f.closed)Filename: data.txt Mode: r Is Closed? False Is Closed? True
- f.name: उघडलेल्या file चं नाव देतं.
- f.mode: file कोणत्या mode मध्ये उघडली आहे ते सांगतं.
- f.closed: file बंद आहे की उघडी आहे हे Boolean मध्ये (True/False) सांगतं.
File वाचणे – Reading a File
File मधील content वाचण्यासाठी तीन प्रमुख methods वापरल्या जातात:
1. read() — संपूर्ण content एकाच वेळी वाचणे
file = open("data.txt", "r") content = file.read() print(content) file.close()2. readline() — एका वेळी एक ओळ वाचणे
file = open("data.txt", "r") print(file.readline()) # पहिली ओळ print(file.readline()) # दुसरी ओळ file.close()3. readlines() — सर्व ओळी list स्वरूपात वाचणे
file = open("data.txt", "r") lines = file.readlines() print(lines) file.close()मोठ्या files साठी संपूर्ण content एकदम read() ने वाचण्याऐवजी, ओळीओळीने (for line in file:) वाचणं जास्त memory-efficient असतं.
File मध्ये लिहिणे — Writing to a File
"w" mode वापरून file मध्ये data लिहिता येतो. ही file अस्तित्वात नसेल तर नवीन तयार होते, आणि असेल तर जुना content पूर्णपणे मिटून नवीन content लिहिला जातो.
with open("data.txt", "w") as file: file.write("Namaste, Python!\n") file.write("File handling Python madhe khup sope aahe.") print("File successfully written")File successfully written
Append mode — जुना content न मिटवता नवीन data जोडणे
with open("data.txt", "a") as file: file.write("\nHi appended line.")write() single string लिहिण्यासाठी वापरतात, तर multiple lines एकाच वेळी लिहायच्या असल्यास writelines() (list of strings) वापरतात.
with Statement — सुरक्षित आणि आधुनिक पद्धत
File manually उघडून, काम करून, शेवटी close() करणं ऐवजी with statement वापरणं ही आजची best practice आहे. with statement वापरल्यास file आपोआप बंद होते जरी मध्येच एखादी error आली तरीही. यामुळे file corruption आणि resource leakage चा धोका खूप कमी होतो.
with open("data.txt", "r") as file: content = file.read() print(content) # इथे file आपोआप बंद झालेली असतेGoogle आणि Python community दोघेही file handling साठी with statement वापरण्याची शिफारस करतात — कारण ते readable, safe आणि error-proof आहे.
Exception Handling – Error आल्यास File सुरक्षित बंद करणे
कधी कधी file अस्तित्वातच नसते, किंवा वाचताना काही अडचण येते. अशावेळी प्रोग्राम क्रॅश होऊ नये आणि file नेहमी नीट बंद व्हावी यासाठी try / except / finally वापरतात.
try: file = open("data.txt", "r") content = file.read() print(content) except FileNotFoundError as e: print("Error:", e) finally: file.close()- try block मध्ये error येण्याची शक्यता असलेला code असतो.
- except block
FileNotFoundErrorसारख्या specific errors handle करतो. - finally block मध्ये लिहिलेला code error आली तरीही नक्की चालतो – त्यामुळे file नेहमी बंद होते याची खात्री होते.
Best Practices — लक्षात ठेवण्यासारख्या गोष्टी
- शक्यतो नेहमी
withstatement वापरा — manualclose()विसरण्याची शक्यता राहत नाही. - File अस्तित्वात आहे की नाही याची खात्री करण्यासाठी
try/exceptवापरा. - मोठ्या files साठी
read()ऐवजीfor line in file:वापरा. - Binary files (images, pdf) साठी
"rb"/"wb"mode वापरा.
Practice Problems — स्वतः प्रयत्न करा
Problem 1: एक Python program लिहा जो user कडून त्याचं नाव विचारेल आणि "names.txt" file मध्ये append mode मध्ये साठवेल.
Problem 2: with statement वापरून एक file वाचा आणि त्यातील एकूण ओळींची संख्या (line count) print करा.
Problem 3: try/except वापरून अशी file उघडा जी अस्तित्वात नाही, आणि योग्य error message दाखवा.
Problem 4: एका file मधील सर्व शब्द (words) मोजणारा (word count) program लिहा.
Frequently Asked Questions (FAQ)
Q1. Python मध्ये file handling म्हणजे नक्की काय?
Ans: File handling म्हणजे Python प्रोग्रामच्या मदतीने file तयार करणे, उघडणे, वाचणे, लिहिणे आणि बंद करणे या क्रिया करणे — जेणेकरून data कायमस्वरूपी साठवता येतो.
Q2. Python मध्ये file उघडण्यासाठी कोणतं function वापरतात?
Ans: Python चं built-in open() function वापरून file उघडली जाते. यासाठी filename आणि mode हे दोन arguments लागतात.
Q3. with statement वापरण्याचा फायदा काय?
Ans: with statement वापरल्यास file वापरून झाल्यावर ती आपोआप बंद होते, जरी error आली तरीही — त्यामुळे manually close() लिहिण्याची गरज पडत नाही.
Q4. “w” आणि “a” mode मध्ये काय फरक आहे?
Ans: “w” mode जुना content मिटवून नवीन content लिहितो, तर “a” mode जुना content कायम ठेवून शेवटी नवीन data जोडतो (append करतो).
Q5. File अस्तित्वात नसेल तर काय error येते?
Ans: Read mode (“r”) मध्ये file अस्तित्वात नसल्यास Python FileNotFoundError ही exception देतो.
Q6. read(), readline() आणि readlines() मध्ये फरक काय?
Ans: read() संपूर्ण content एकत्र वाचतो, readline() एका वेळी एक ओळ वाचतो, तर readlines() सर्व ओळी एका list मध्ये वाचतो.
पुढे काय शिकाल?
File Handling शिकल्यानंतर पुढे Exception Handling सखोल पद्धतीने, तसेच Python Database (SQLite/MySQL) कसं वापरायचं हे शिकणं उपयुक्त ठरेल.


