Python Me File Kaise Read Kare? Complete Guide in Hindi
Python File Reading
अब तक हमारे programs का सारा data सिर्फ program चलने तक ही रहता था — program बंद, और data गायब। Real projects में data अक्सर files में रखा होता है — जैसे notes, student list, या log files। इस lesson में हम सीखेंगे कि Python से किसी file का data कैसे पढ़ा (read) जाता है।
अगर आपने File Handling का overall idea अभी नहीं देखा है, तो पहले Python File Handling in Hindi: Core Concepts & Workflow पढ़ लें।
Practice के लिए File तैयार करें
File reading सीखने के लिए हमें एक असली file चाहिए। अपने computer में notes.txt नाम की एक text file बनाइए और उसमें ये 3 lines लिखिए। फिर अपनी Python file (.py) को उसी folder में रखिए।
File से Data Read करना
File से data पढ़ने का मतलब है — file में लिखी जानकारी को Python program के अंदर लाना, ताकि हम उसे print कर सकें, process कर सकें, या उस पर कोई काम कर सकें।
इसके लिए हमेशा यह क्रम चलता है:
open() का Read Purpose
किसी भी file को खोलने के लिए Python का built-in function open() इस्तेमाल होता है। Read करने के लिए file को "r" (read) mode में खोला जाता है।
"file_name"→ जिस file को खोलना है उसका नाम (और जरूरत हो तो path)"r"→ read mode, यानी file को सिर्फ पढ़ने के लिए खोलना
"r" Python का default mode है, इसलिए open("notes.txt") लिखना भी open("notes.txt", "r") जैसा ही है। लेकिन शुरुआत में "r" साफ-साफ लिखने से code का मतलब ज्यादा clear रहता है।
File Object का Basic Concept
open() किसी file का content सीधे नहीं देता — वह एक file object return करता है। यह file object उस file से जुड़ा एक "रास्ता" है, जिसके जरिए हम बाद में read(), readline() जैसे methods से data पढ़ते हैं।
Output:
यहाँ f में file का content नहीं, बल्कि file object है। काम खत्म होने पर f.close() से file को बंद कर देना चाहिए।
read() Method
read() file का content एक string के रूप में वापस देता है।
पूरी File का Content पढ़ना
Output:
बिना कोई number दिए read() लिखने पर पूरी file एक ही बार में, एक string में आ जाती है।
read(size) से Limited Characters पढ़ना
read() में एक number देने पर वह उतने ही characters पढ़ता है।
Output:
पहली बार में 10 characters मिले ("Python is " — is के बाद एक space भी है)। दूसरी बार में पिछली जगह से आगे के 4 characters ("easy") मिले — यानी read(size) हर बार वहीं से आगे बढ़ता है जहाँ पिछली बार रुका था।
readline() से एक-एक Line पढ़ना
readline() हर call में file की सिर्फ एक line पढ़ता है, और अगली call में अगली line।
Output:
दोनों lines के बीच एक खाली line क्यों आई? क्योंकि file की हर line के आखिर में एक छिपा हुआ new line character (\n) होता है, और print() अपनी तरफ से भी एक new line जोड़ देता है — यानी दो बार new line।
Output:
Strings के strip() जैसे methods के बारे में और जानने के लिए Python Strings in Hindi पढ़ सकते हैं।
readlines() से सभी Lines पढ़ना
readlines() पूरी file की सारी lines को एक list में वापस देता है — हर line उस list का एक element होती है।
Output:
ध्यान दें — पहली दो lines के आखिर में \n मौजूद है, जबकि आखिरी line में नहीं (क्योंकि हमने उसके बाद Enter नहीं दबाया था)। Lists के बारे में revise करने के लिए Python Lists Complete Guide देख सकते हैं।
read(), readline() और readlines() में Difference
| Method | क्या return करता है | कब इस्तेमाल करें |
|---|---|---|
read() | पूरी file एक string में | छोटी file का पूरा text चाहिए हो |
readline() | एक बार में एक line (string) | Lines को एक-एक करके, अपने control में पढ़ना हो |
readlines() | सारी lines की list | Lines की गिनती करनी हो, या list की तरह loop चलाना हो |
हमारी notes.txt पर तीनों का result एक नज़र में:
File Pointer / Cursor का Basic Concept
File पढ़ते समय Python एक अदृश्य cursor (file pointer) रखता है, जो बताता है कि अभी file में कहाँ तक पढ़ा जा चुका है। हर बार पढ़ने पर यह cursor उतना आगे बढ़ जाता है।
cursor की मौजूदा position देखने के लिए tell() इस्तेमाल किया जा सकता है।
Output:
शुरू में cursor 0 पर था। 10 characters पढ़ने के बाद 10 पर, और 4 और पढ़ने के बाद 14 पर पहुँच गया।
दोबारा read() करने पर क्या होता है
जब read() पूरी file पढ़ लेता है, तो cursor file के आखिर में पहुँच जाता है। अब दोबारा read() करने पर पढ़ने के लिए कुछ बचा ही नहीं होता, इसलिए Python एक खाली string देता है।
Output:
दूसरी बार का result '' यानी बिल्कुल खाली string है — कोई error नहीं आई, बस पढ़ने को कुछ बचा ही नहीं था।
seek() का Basic Use
seek() cursor को file में किसी भी position पर वापस ले जाता है। सबसे common इस्तेमाल है seek(0) — यानी cursor को file की शुरुआत में वापस ले आना, ताकि file दोबारा पढ़ी जा सके।
Output:
seek(0) ने cursor को शुरुआत में भेज दिया, इसलिए दूसरी बार भी पूरा content मिला और दोनों बार का result बिल्कुल same रहा।
Output:
seek(7) ने cursor को 7वीं position पर रखा (जहाँ "is easy" शुरू होता है), और वहीं से 7 characters पढ़े गए।
seek(0) सबसे सुरक्षित और सबसे ज्यादा इस्तेमाल होने वाला तरीका है। ऊपर seek(7) वाला example एक साधारण English (ASCII) text file पर है — बाकी characters वाली files में अलग-अलग positions पर जाना हमेशा इतना सीधा नहीं होता।
with open() के साथ File Read करना
हर बार f.close() लिखना भूल जाना आसान है। with open() इस समस्या को हल करता है — यह काम खत्म होते ही file को अपने-आप बंद कर देता है, चाहे बीच में कोई error ही क्यों न आ जाए।
Output:
f.closed का True आना दिखाता है कि with block खत्म होते ही file अपने-आप बंद हो चुकी है — हमें close() लिखना ही नहीं पड़ा।
with open() ही रखिए। यह ज्यादा सुरक्षित और साफ-सुथरा है।
Real-World Text File Reading Example
मान लीजिए आपके पास एक students.txt file है, जिसमें हर line में एक student का नाम लिखा है:
Output:
readlines() से सारे नाम एक list में आ गए, len() से उनकी गिनती निकली, और strip() से हर नाम के साथ चिपका \n हटाया गया।
Output:
Common Mistakes
Output:
Python को वह file उस folder में मिली ही नहीं जहाँ से आपका program चल रहा है।
File का नाम (और extension, जैसे .txt) ध्यान से जाँचिए, और पक्का कीजिए कि file आपकी .py file वाले folder में ही है। गलती संभालने का तरीका Python Exception Handling in Hindi में सीख सकते हैं।
Output:
with block खत्म होते ही file बंद हो जाती है, इसलिए उसके बाद पढ़ना possible नहीं।
पहली read() के बाद cursor आखिर में पहुँच चुका होता है, इसलिए दूसरी बार कुछ नहीं मिलता।
Output:
readlines() एक list देता है, string नहीं — string वाले methods इस पर सीधे नहीं चलते।
open() के बाद close() न लिखने से file खुली रह जाती है। इसीलिए with open() का इस्तेमाल करना बेहतर है, जो file को अपने-आप बंद कर देता है।
UnicodeDecodeError आए, तो file को open("file.txt", "r", encoding="utf-8") लिखकर खोलिए। कई systems (खासकर Windows) पर default encoding UTF-8 नहीं होती।
Exercise ?
readlines() method क्या return करता है?
Final Coding Challenge
अपने computer में my_notes.txt नाम की एक text file बनाइए जिसमें अपनी पसंद की 5 lines हों (हर line अलग)। फिर VS Code में इन tasks को पूरा कीजिए:
with open()औरread()से पूरी file का content print कीजिए।read(15)से सिर्फ पहले 15 characters print कीजिए।readline()को तीन बार call करके पहली तीन lines print कीजिए (खाली line न आए —strip()याend=""इस्तेमाल करें)।readlines()से सारी lines की list बनाइए औरlen()से बताइए कि file में कुल कितनी lines हैं।- एक loop चलाकर हर line को line number के साथ print कीजिए, जैसे
1. पहली line। - एक ही file object पर
read()दो बार call करके देखिए कि दूसरी बार क्या मिलता है, फिरseek(0)लगाकर उसे ठीक कीजिए। - Bonus: किसी ऐसी file का नाम देकर देखिए जो मौजूद ही नहीं है, और कौन सी error आती है यह नोट कीजिए।
Quick Revision
| Concept | Syntax / मतलब |
|---|---|
| File खोलना (read) | open("file.txt", "r") |
| File Object | open() जो वापस देता है, content नहीं |
| पूरी file पढ़ना | f.read() |
| कुछ characters पढ़ना | f.read(10) |
| एक line पढ़ना | f.readline() |
| सारी lines (list) | f.readlines() |
| Cursor की position | f.tell() |
| Cursor को शुरुआत में लाना | f.seek(0) |
| अपने-आप बंद होने वाला तरीका | with open("file.txt", "r") as f: |
FAQ
Python में file को पढ़ने के लिए कौन सा mode इस्तेमाल होता है?
Read mode "r" इस्तेमाल होता है। यह Python का default mode भी है, इसलिए open("notes.txt") और open("notes.txt", "r") एक जैसे ही काम करते हैं।
read(), readline() और readlines() में क्या फर्क है?
read() पूरी file एक string में देता है, readline() एक बार में सिर्फ एक line देता है, और readlines() सारी lines की एक list देता है।
दोबारा read() करने पर खाली string क्यों मिलती है?
क्योंकि पहली बार पूरी file पढ़ने के बाद file pointer (cursor) file के आखिर में पहुँच जाता है। अब आगे पढ़ने को कुछ बचा नहीं होता। seek(0) से cursor को शुरुआत में लाकर फिर से पढ़ा जा सकता है।
with open() का इस्तेमाल क्यों बेहतर माना जाता है?
क्योंकि यह काम खत्म होते ही file को अपने-आप बंद कर देता है, चाहे बीच में कोई error ही क्यों न आए। इससे close() लिखना भूलने की गलती नहीं होती।
पढ़ी गई lines में \n क्यों दिखता है?
File की हर line के आखिर में एक new line character (\n) होता है, और readline()/readlines() उसे भी साथ में पढ़ते हैं। उसे हटाने के लिए strip() इस्तेमाल किया जाता है।
FileNotFoundError क्यों आती है?
जब Python को दिए गए नाम की file उस folder में नहीं मिलती जहाँ से program चल रहा है — यानी file का नाम, extension या location गलत होती है।
Summary
File Reading = file खोलो →read(),readline()याreadlines()से data पढ़ो → file बंद करो (याwith open()से अपने-आप बंद होने दो)।
इस lesson में आपने सीखा कि open() read mode में कैसे काम करता है, file object क्या होता है, read(), read(size), readline() और readlines() में क्या फर्क है, file pointer (cursor) कैसे आगे बढ़ता है, दोबारा read() करने पर खाली string क्यों मिलती है, seek() से cursor को वापस कैसे लाते हैं, और with open() से file को सुरक्षित तरीके से कैसे पढ़ते हैं।
File Reading पक्की हो जाए तो आगे के File Handling topics सीखना बहुत आसान हो जाता है। अब ऊपर दिया गया coding challenge खुद VS Code में solve कीजिए।
Related Articles
Python code likho, run karo aur practice karo — directly browser mein.

कोई टिप्पणी नहीं:
एक टिप्पणी भेजें