File Management in Python

File Management in Python – Files के बारे में हमने Core Types Chapter के अन्‍तर्गत कुछ Basics को Clear किया था। इस Chapter में हम Files से सम्‍बंधित अन्‍य Concepts को थोड़ा और विस्‍तार से समझेंगे। Files वास्‍तव में एक Named Storage Compartment होते हैं, जो हमारे Local Computer System की Hard Disk Drive पर Create होते हैं और हमारे Computer System पर Currently Installed Operating System द्वारा Control, Manage व Handle होते हैं।

Files हमारे Python का अन्तिम महत्‍वपूर्ण Built-In Core Type है जिसके माध्‍यम से हम हमारे Computer System पर Exist किसी भी File को एक Object के रूप में अपने Current Python Program के माध्‍यम से Access and Manipulate करने की सुविधा प्राप्‍त करते हैं।

Python का open() नाम का Built-In Function, Python Program में File Object Create करने का काम करता है, जो कि Actual Disk Drive पर Exist किसी Storage Compartment का एक Link होता है। जब एक बार हम open() Function को Call कर लेते हैं, उसके बाद इस open() Function से Return होने वाले File Object के साथ विभिन्‍न File Methods का प्रयोग करते हुए, उसके साथ File के रूप में Linked External Actual Disk Storage में Programmatically किसी Strings of Data को Write कर सकते हैं अथवा Data को Read कर सकते हैं।

चूंकि File Objects को Built-In file() Function का प्रयोग करते हुए Create किया जाता है, इसीलिए File Object को एक Core Type माना जाता है, लेकिन ये Core Type होने के बावजूद Number, Sequence या Mappings की तरह काम नहीं करते, न ही किसी तरह के Expression Operators को Respond करते हैं। ये केवल File Methods के माध्‍यम से ही विभिन्‍न प्रकार की जरूरतों को पूरा करने से सम्‍बंधित Operations Perform करते हैं।

ज्‍यादातर File Methods File Objects के माध्‍यम से मूलत: External Disk File में किसी Data को Output के रूप में Write करने का काम करते हैं अथवा External Disk File से किसी Data को Input के रूप में Read करने का काम करते हैं। जबकि कुछ अन्‍य File Methods, External Disk File Searching करने अथवा किसी Specific Content की Position को Seek करके उसकी Location Return करने और Output Buffer को Flush करने जैसा काम भी करते हैं।

एक File के साथ किए जा सकने वाले विभिन्‍न Operations व उनसे सम्‍बंधित Methods की Working को निम्‍न सारणी द्वारा आसान तरीके से Represent कर सकते हैं-

Operation Interpretation
output = open(r’C:\spam’, ‘w’) Create output file (‘w’ means write)
input = open(‘data’, ‘r’) Create input file (‘r’ means read)
input = open(‘data’) Same as prior line (‘r’ is the default)
aString = input.read() Read entire file into a single string
aString = input.read(N) Read up to next N characters (or bytes) into a string
aString = input.readline() Read next line (including \n newline) into a string
aList = input.readlines() Read entire file into list of line strings (with \n)
output.write(aString) Write a string of characters (or bytes) into file
output.writelines(aList) Write all line strings in a list into file
output.close() Manual close (done for you when file is collected)
output.flush() Flush output buffer to disk without closing
anyFile.seek(N) Change file position to offset N for next operation
for line in open(‘data’): use line File iterators read line by line
open(‘f.txt’, encoding=’latin-1′) Python 3.X Unicode text files (str strings)
open(‘f.bin’, ‘rb’) Python 3.X bytes files (bytes strings)

किसी File के साथ काम करते समय हमें हमेंशा तीन Operations Perform करने होते हैं-

  • File को किसी Specific Mode में Open करना।
  • File में Data को Write या Read करना। और
  • File को Close करना।

File Open करते समय हमें Python के open() नाम के Built-In Function को Call करना होता है और उसमें दो Parameters Pass करने होते हैं। पहला Parameter उस File का नाम होता है, जिसे हम Open करना चाहते हैं, जबकि दूसरा Parameter उस Open होने वाली File का Opening Mode होता है, जो ये तय करता है कि हम File को Data Writing के लिए Open करना चाहते हैं, Reading के लिए Open करना चाहते हैं या Appending के लिए Open करना चाहते हैं।

हम इस Function में जो Filename Specify करते हैं, उस नाम का File यदि Current Direction Location पर Disk पर पहले से Exist हो, तो ये Function उस File को Open करके उसका Object Return कर देता है, लेकिन यदि उस Specified Name का कोई File Disk पर पहले से Exist न हो, तो उस स्थिति में ये Function एक नया External Disk File Create करता है और उस Newly Created Disk File का Object Return कर देता है।

जब हम File Name के साथ Complete Directory Path Specify नहीं करते हैं, तब open() Function उस Specified Filename की External Disc File को Open करने के लिए उसी Current Working Directory Location पर Create या Search करता है, जहां पर Current Python Program File Exist है।

दूसरे Parameter के रूप में हम File Opening Mode को Specify करते हैं, जो कि एक Single Character String होता है और इसका Default मान “w” होता है। यानी जब हम दूसरे Parameter को Specify नहीं करते हैं, जब जो File Open होती है, वो हमेंशा Writing Mode में ही Open होती है।

जबकि हमें File को Reading Mode में Open करना हो, तो उस स्थिति में हमें File को “r” String के साथ Reading Mode में Open करना होता है और यदि हम किसी पहले से Exist File में नए Content को Append करना चाहते हैं, तो उस स्थिति में हमें Open की जाने वाली File का Mode String “a” Specify करते हुए Append Mode में Open करना होता है।

इसके साथ ही जब हम किसी File को Binary Mode में Process करना चाहते हैं, तब File Processing Mode के साथ Character “b” को भी Specify करना होता है। उदाहरण के लिए यदि हम File Processing Mode के रूप में “rb” लिख दें, तो Open होने वाली File Binary Reading Mode में Open होगी।

जब हम किसी File को Reading Mode में Open करते हैं, तब हम उसमें Writing नहीं कर सकते। यदि हमें उसी File में Writing करना हो, तो पहले Reading Mode में Open की गई उस File को Close करना पड़ता है और फिर उसी File को Writing Mode में Open करना पड़ता है। इसी तरह से हम किसी Writing Mode में Open की गई File को Close करके फिर से Reading Mode में Open किए बिना उसके Content को Read नहीं कर सकते।

लेकिन कई बार ऐसी स्थिति होती है कि हमें File को Read भी करना होता है और समान समय पर उसमें नए Content को Write भी करना होता है। इस तरह की स्थिति में File को बार-बार Mode Change करने के लिए Close करके फिर से Open करने से बचने के लिए File को “+” Operator के साथ Open कर लेते हैं, ताकि बार-बार File Opening and Closing से Program की Performance प्रभावित न हो।

उदाहरण के लिए यदि हमें किसी File को Reading व Writing दोनों Modes में Open करना है लेकिन File में पहले से लिखे Content के अन्‍त में ही नया Content Add करना है, तो इस जरूरत को पूरा करने के लिए हम जब File Open करेंगे, तो हमारा File Opening Mode “a+” होगा।

Python में जब भी किसी File को Reading अथवा Writing Mode में Open किया जाता है, File का File Pointer उस File के बिल्‍कुल शुरूआत में Place हो जाता है। इसीलिए जब हम File को Read करते हैं, तब हमें जो Content प्राप्‍त होता है, वो बिलकुल File के Beginning से मिलता है।

लेकिन इस तरह से File के Open होने की एक समस्‍या ये है कि जब हम किसी पहले से Exist File को Writing Mode में Open करते हैं, तब भी File Pointer, File के बिल्‍कुल Beginning में ही होता है। इसलिए जैसे ही हम उस File में Content लिखना शुरू करते हैं, उस File में पहले से जो Content Exist होता है, वो Overwrite होकर Destroy हो जाता है।

इसी Overwriting की समस्‍या से बचने के लिए ही Python में Append Mode को उपलब्‍ध करवाया गया है। क्‍योंकि जब हम File को Append Mode में Open करते हैं, तब File Pointer हमेंशा File के अन्‍त में Place हो जाता है।

लेकिन जब हम किसी File को “+” Operator का प्रयोग करते हुए Reading व Writing दोनों कामों को समान समय पर करना चाहते हैं, तब हमें एक ही File में बार-बार अलग-अलग Text Position पर पहुंचना होता है, ताकि हम एक ही File के Content को अपनी जरूरत के अनुसार Read, Write या Modify कर सकें।

इसीलिए जब भी कभी हम “+” Operator का प्रयोग करते हुए किसी File को Open करते हैं, तब File के अन्‍दर File Pointer को Different Content Positions पर पहुंचने के लिए seek() Method का प्रयोग करना जरूरी होता है क्‍योंकि यही Method हमें File के Content में Move करने की सुविधा Provide करता है।

जब एक बार हम open() Function का प्रयोग करते हुए किसी File को Open कर लेते हैं, और उस File के File Pointer को किसी Variable में प्राप्‍त कर लेते हैं, उसके बाद उस File Pointer के माध्‍यम से ही हमें उस External Disk File Object को Access and Manipulate करने से सम्‍बंधित सभी Operations को Perform करना होता है और विभिन्‍न प्रकार के File Operations Perform करने के लिए Python हमें कई जरूरी File Methods Provide करता है।

हम जब भी कभी किसी File Methods का प्रयोग करके File के Text Contents को Read करते हैं, तो वह Content String का रूप ले लेता है। यानी File का सारा Content, Python Program के अन्‍तर्गत हमेंशा String के रूप में ही Handle होता है। इसलिए जब हम External File के Content को Read करते हैं, तो वह Content भी String के रूप में ही Read होता है और जब हम किसी Content को File में Write करना चाहते हैं, तब Write किया जाने वाला Content भी String के Format में ही Write किया जाना होता है।

Cont…

Tuple in Python - Part 2
File Management in Python - Part 2

Python in Hindi - BccFalna.comये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Python in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।

Python in Hindi | Page: 602 | Format: PDF

BUY NOW GET DEMO REVIEWS