मुख्य सामग्री पर जाएँ

Python में फ़ाइल में लिखना: Text, CSV, और JSON फ़ाइलों के साथ सुरक्षित रूप से काम कैसे करें

बिल्ट‑इन टूल्स, सामान्य पैटर्न्स, और वास्तविक‑दुनिया के अनुप्रयोगों के लिए श्रेष्ठ प्रक्रियाओं का उपयोग करके Python में फ़ाइलों में लिखना सीखें।
· 7 मि॰ पढ़ें

AI के साथ खोजें

किसी न किसी समय, हर Python प्रोग्राम को कुछ न कुछ सेव करने की ज़रूरत होती है: लॉग्स, परिणाम, उपयोगकर्ता इनपुट, कॉन्फ़िगरेशन फ़ाइलें, या प्रोसेस किया हुआ डेटा। आप विश्लेषण के परिणाम एक्सपोर्ट कर रहे हों, अपनी स्क्रिप्ट ने क्या किया उसे दर्ज कर रहे हों, या रन के बीच एप्लिकेशन स्टेट को बनाए रख रहे हों—जो भी मामला हो, फ़ाइलों में लिखना एक मूलभूत Python कौशल है जिसे आप बार‑बार इस्तेमाल करेंगे।

इस गाइड में, आप स्टैंडर्ड लाइब्रेरी का उपयोग करके Python में फ़ाइलों में लिखना सीखेंगे। हम बुनियादी बातों से शुरू करेंगे, फिर फ़ाइल मोड्स, एनकोडिंग्स, JSON और CSV जैसे स्ट्रक्चर्ड फ़ॉर्मैट्स, और ऐसे प्रोडक्शन‑रेडी पैटर्न्स तक बढ़ेंगे जो आपके कोड को सुरक्षित और अधिक पूर्वानुमेय बनाते हैं। अंत तक, आप केवल खिलौना उदाहरणों में नहीं, बल्कि वास्तविक एप्लिकेशनों में भी आत्मविश्वास से फ़ाइलें लिख सकेंगे।

यदि आप पहले से Python की बुनियादी बातों में सहज हैं, तो यह ट्यूटोरियल स्क्रिप्ट्स और प्रोफेशनल‑ग्रेड फ़ाइल हैंडलिंग के बीच की दूरी को पाटने में मदद करता है। यदि आप चलते‑चलते बुनियाद को मजबूत करना चाहते हैं, तो हमारे Introduction to Python और Intermediate Python  कोर्स इस वॉकथ्रू के साथ अच्छी तरह मेल खाते हैं।

शुरुआत करें: Python में आपकी पहली फ़ाइल लिखना

Python में फ़ाइल लिखना समझने का सबसे तेज़ तरीका है इसे करके देखना। चलिए सबसे सरल उदाहरण से शुरू करते हैं और वहीं से आगे बढ़ते हैं।

मूल पैटर्न (कदम दर कदम)

मूल रूप से, फ़ाइल में लिखना एक सरल पैटर्न का पालन करता है:

  1. फ़ाइल खोलें
  2. उसमें सामग्री लिखें
  3. फ़ाइल बंद करें

Python पहले कदम के लिए बिल्ट‑इन open() फ़ंक्शन प्रदान करता है।

open() फ़ंक्शन, सरल शब्दों में

open() फ़ंक्शन आपके Python कोड को डिस्क पर किसी फ़ाइल से जोड़ता है। आप इसे दो बातें बताते हैं:

  • आप किस फ़ाइल पर काम करना चाहते हैं
  • आप उसके साथ कैसे काम करना चाहते हैं

लिखने के लिए सबसे आम मोड "w" है, जिसका मतलब है write। अगर फ़ाइल मौजूद नहीं है, तो Python इसे बनाता है। अगर यह मौजूद है, तो Python इसे ओवरराइट कर देता है।

file = open("example.txt", "w")
file.write("Hello, world!")
file.close()

इस स्क्रिप्ट को चलाएं, और Python आपके कोड की उसी डायरेक्टरी में example.txt नाम की एक फ़ाइल बना देगा।

तो अभी क्या हुआ?

  • open("example.txt", "w") फ़ाइल को खोलता या बनाता है

  • write() टेक्स्ट को फ़ाइल में भेजता है

  • close() डेटा फ्लश करता है और फ़ाइल को रिलीज़ करता है

यह काम करता है, लेकिन लंबे समय तक फ़ाइलें लिखने का यह सही तरीका नहीं है।

Python में सही तरीका: Context Managers का उपयोग

फ़ाइलों को मैन्युअली खोलना और बंद करना भूलना आसान है और गलती करना भी। यही वजह है कि Python context managers के उपयोग को प्रोत्साहित करता है।

क्यों with बेहतर है: with का उपयोग यह सुनिश्चित करता है कि लिखते समय कुछ भी गलत होने पर भी फ़ाइल हमेशा ठीक से बंद हो। यह आपके कोड को सुरक्षित और पढ़ने में आसान बनाता है।

with open("example.txt", "w") as file:
    file.write("Hello, world!")

with ब्लॉक के समाप्त होते ही Python फ़ाइल को स्वतः बंद कर देता है। यह पैटर्न प्रोफेशनल Python कोड में हर जगह दिखता है और इसे याद कर लेना चाहिए। आप इसे हमारे Python Programming स्किल ट्रैक और Writing Clean Python Code कोर्स में बार‑बार देखेंगे।

Python Write to File का एक उदाहरण

आइए इसे थोड़ा अधिक वास्तविक चीज़ पर लागू करें। यहाँ मैं एक दैनिक जर्नल एंट्री बनाऊँगा।

from datetime import date

today = date.today().isoformat()

with open("journal.txt", "a", encoding="utf-8") as file:
    file.write(f"{today}: Practiced writing files in Python.\n")

यह दो महत्वपूर्ण विचार पेश करता है:

  • Append मोड ("a")

  • स्ट्रक्चर्ड, दोहराई जा सकने वाली एंट्री लिखना

  • हर रन एक नई पंक्ति जोड़ता है बिना पहले की एंट्रियों को हटाए।

फ़ाइल मोड्स को समझना: w, a, x, और r+ कब उपयोग करें

एक बार जब आप फ़ाइल में लिखना जान जाते हैं, तो सबसे महत्वपूर्ण निर्णय होता है उसे कैसे खोलें। फ़ाइल मोड्स नियंत्रित करते हैं कि डेटा ओवरराइट होगा, संरक्षित रहेगा, या सुरक्षित किया जाएगा।

Write मोड (w): नई शुरुआत

यदि फ़ाइल मौजूद नहीं है तो write मोड इसे बनाता है। अगर मौजूद है, तो इसे ओवरराइट कर देता है।

with open("report.txt", "w") as file:
    file.write("Daily sales report\n")

इसे तब उपयोग करें जब आपको एक साफ़ स्लेट चाहिए। सावधान रहें क्योंकि यह मोड बिना बताए मौजूदा डेटा हटा देता है।

Append मोड (a): बिना डेटा खोए जोड़ना

Append मोड फ़ाइल के अंत में सामग्री जोड़ता है।

with open("activity.log", "a") as file:
    file.write("User logged in\n")

यह लॉग्स और क्रमिक रिकॉर्ड्स के लिए आदर्श है और प्रोडक्शन सिस्टम्स के लिए सबसे सुरक्षित मोड्स में से एक है।

Exclusive मोड (x): सुरक्षित फ़ाइल निर्माण

एक्सक्लूसिव मोड केवल तब फ़ाइल बनाता है जब वह पहले से मौजूद न हो।

try:
    with open("config.txt", "x") as file:
        file.write("initialized=true")

except FileExistsError:
    print("File already exists.")

यह उन सेटअप स्क्रिप्ट्स के लिए उपयोगी है जहाँ ओवरराइट करना जोखिम भरा होगा।

Read-write मोड (r+): मौजूदा फ़ाइलों में संशोधन

यह मोड पढ़ने और लिखने दोनों की अनुमति देता है, लेकिन फ़ाइल का मौजूद होना आवश्यक है।

with open("notes.txt", "r+") as file:
    content = file.read()
    file.write("\nNew note added.")

लिखना वर्तमान फ़ाइल पॉइंटर की पोजीशन पर होता है, इसलिए यहाँ कर्सर मूवमेंट को समझना महत्वपूर्ण है।

तो कौन सा मोड उपयोग करें? मेरा मानसिक मार्गदर्शक यह है:

  • मौजूदा डेटा ओवरराइट करना → w

  • डेटा रखें और और जोड़ें → a

  • ओवरराइट्स रोकना → x

  • उसी फ़ाइल को पढ़ना और अपडेट करना → r+

इसे दृष्टिगत रूप से सुदृढ़ करने के लिए:

python फ़ाइल में लिखना कैसे करें

सही फ़ाइल मोड का चुनाव आमतौर पर आपके उद्देश्य पर आता है: ओवरराइट करना, जोड़ना, सुरक्षित करना, या संशोधन करना।

Python में अलग‑अलग प्रकार की सामग्री लिखना

जब आप सही मोड के साथ फ़ाइलें खोलने में सहज हो जाते हैं, तो अगला सवाल होता है कि आप वास्तव में क्या लिख रहे हैं।

वास्तविक प्रोग्रामों में, आप हमेशा एक ही स्ट्रिंग नहीं लिख रहे होते। आप सूचियाँ सेव कर सकते हैं, परिणाम एक्सपोर्ट कर सकते हैं, या इमेज या PDF जैसे नॉन‑टेक्स्ट डेटा के साथ काम कर सकते हैं। इस सेक्शन में, आप सीखेंगे कि अलग‑अलग तरह की सामग्री फ़ाइलों में सुरक्षित और कुशलतापूर्वक कैसे लिखें।

टेक्स्ट और स्ट्रिंग्स लिखना

सबसे सरल केस है सादा टेक्स्ट लिखना। Python इसके लिए दो मुख्य मेथड देता है: write() और writelines().

write() ठीक वही लिखता है जो आप पास करते हैं, कोई स्वतः नया लाइन नहीं जोड़ता।

with open("example.txt", "w") as file:
    file.write("First line\n")
    file.write("Second line\n")

write() बनाम writelines()

मुख्य अंतर सरल है: write() एक समय में एक ही स्ट्रिंग लिखता है जबकि writelines() स्ट्रिंग्स के एक अनुक्रम को जैसा है वैसा लिखता है; writelines() आपके लिए नए लाइन नहीं जोड़ता, इसलिए हर एलिमेंट पहले से \n पर समाप्त होना चाहिए।

व्यवहार में, कई डेवलपर्स फिर भी लूप में write() को तरजीह देते हैं क्योंकि यह पढ़ने में आसान होता है।

lines = ["One\n", "Two\n", "Three\n"]

with open("example.txt", "w") as file:
    file.writelines(lines)

सूचियाँ कुशलतापूर्वक लिखना

items = ["apple", "banana", "cherry"]

content = "\n".join(items)

with open("fruits.txt", "w") as file:
    file.write(content)

पहले जॉइन करना दोहराए जाने वाले डिस्क राइट्स को कम करता है, जो बड़े डेटासेट्स के लिए मायने रखता है।

बाइनरी डेटा लिखना

नॉन‑टेक्स्ट फ़ाइलों के लिए बाइनरी मोड ("wb") आवश्यक है।

binary_data = b"\x89PNG\r\n\x1a\n"

with open("image.bin", "wb") as file:
    file.write(binary_data)

Python में एनकोडिंग्स के साथ काम करना (क्यों आपका टेक्स्ट टूटा हुआ दिखता है)

एनकोडिंग से जुड़ी समस्याएँ फ़ाइल हैंडलिंग की सबसे आम—और खीज पैदा करने वाली—बग्स में से हैं।

हमेशा UTF-8 निर्दिष्ट करें

स्पष्ट एनकोडिंग क्रॉस‑प्लैटफ़ॉर्म समस्याएँ और गड़बड़ वर्णों को रोकती है, जैसा कि आप यहाँ देख सकते हैं:

with open("example.txt", "w", encoding="utf-8") as file:
    file.write("Café, résumé, naïve")

वास्तविक‑दुनिया का उदाहरण: बहुभाषी टेक्स्ट

यहाँ स्पष्ट होना बाद में घंटों की डिबगिंग बचाता है। मेरा मतलब यह है:

customers = ["Ana García", "François Dupont", "Miyuki 山田"]

with open("customers.txt", "w", encoding="utf-8") as file:
    for name in customers:
        file.write(name + "\n")

एडवांस्ड Python राइटिंग तकनीकें

जब आप Python में फ़ाइलें लिखने में सहज हो जाते हैं, तो अगली समस्याएँ आमतौर पर यह नहीं होतीं कि कैसे लिखना है, बल्कि यह कि इसे सुरक्षित और कुशलतापूर्वक कैसे करना है। बड़े फ़ाइलें, अनपेक्षित क्रैश, और परफॉर्मेंस बाधाएँ ऐसे किनारी मामले पेश करते हैं जिन्हें हमने अभी कवर नहीं किया है।

बड़ी फ़ाइलों को चंक्स में लिखकर संभालना

स्ट्रीमिंग आउटपुट मेमोरी उपयोग को कम रखता है:

def generate_lines():
    for i in range(1_000_000):
        yield f"Line {i}\n"

with open("large.txt", "w", encoding="utf-8") as file:
    for line in generate_lines():
        file.write(line)

एटॉमिक राइट्स: करप्शन रोकना

यहाँ विचार है कि अगर कोई प्रोग्राम अपडेट के बीच में क्रैश हो जाए तो आंशिक राइट्स को रोका जाए।

import os, tempfile

def atomic_write(path, content):
    with tempfile.NamedTemporaryFile("w", delete=False) as tmp:
        tmp.write(content)
    os.replace(tmp.name, path)

टेक्स्ट फ़ाइलों से आगे: JSON और CSV लिखना

एक बार आपके डेटा में संरचना आ जाए, तो सादा टेक्स्ट सबसे अच्छा विकल्प नहीं रहता। Python JSON और CSV जैसे सामान्य स्ट्रक्चर्ड फ़ॉर्मैट्स में लिखना आसान बनाता है, ताकि आप डेटा को ऐसे स्टोर कर सकें जिसे बाद में शेयर करना, जांचना, और प्रोसेस करना आसान हो।

JSON लिखना

जब आप डिक्शनरीज़ या नेस्टेड डेटा के साथ काम कर रहे होते हैं, तो JSON आमतौर पर लिखने के लिए सबसे स्वाभाविक फ़ॉर्मैट होता है। Python का बिल्ट‑इन json मॉड्यूल आपके लिए कन्वर्ज़न संभालता है, इसलिए आपको स्ट्रिंग्स को मैन्युअली फ़ॉर्मैट नहीं करना पड़ता।

import json

data = {"id": 1, "name": "Jeremiah"}

with open("user.json", "w", encoding="utf-8") as file:
    json.dump(data, file, indent=2)

CSV लिखना

यदि आपका डेटा टेब्युलर है और स्प्रेडशीट्स या BI टूल्स में खोला जाना है, तो CSV बेहतर फ़िट है। csv मॉड्यूल आपको डिलिमिटर्स या कोटिंग की चिंता किए बिना पंक्तियाँ सुरक्षित रूप से लिखने में मदद करता है।

import csv

rows = [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]

with open("users.csv", "w", newline="", encoding="utf-8") as file:
    writer = csv.DictWriter(file, fieldnames=["id", "name"])
    writer.writeheader()
    writer.writerows(rows)

Python में फ़ाइल में लिखने की आम गलतियाँ

भले ही Python में फ़ाइलें लिखना सीधा‑सादा है, कुछ छोटी गलतियाँ ज़्यादातर वास्तविक‑दुनिया की समस्याएँ पैदा करती हैं। ये समस्याएँ आमतौर पर सिंटैक्स के बारे में नहीं होतीं; ये रिसोर्स मैनेजमेंट, फ़ाइल मोड्स, या परफॉर्मेंस विकल्पों जैसी उपेक्षित बातों से आती हैं।

निम्नलिखित बिंदु ध्यान में रखें।

  • फ़ाइलें बंद करना भूल जाना → ‘with’ का उपयोग करें

  • अनजाने में डेटा ओवरराइट करना → मोड्स दोबारा जाँचें

  • एनकोडिंग को नज़रअंदाज़ करना → हमेशा UTF-8 निर्दिष्ट करें

  • बड़ी फ़ाइलें अक्षम तरीके से लिखना → आउटपुट को बैच करें या स्ट्रीम करें

यहाँ ज़्यादातर बग्स जटिल लॉजिक से नहीं, बल्कि छोटी चूकों से आते हैं।

निष्कर्ष

Python में फ़ाइलों में लिखना सरलता से शुरू होता है, लेकिन वास्तविक‑दुनिया के प्रोग्राम ज़्यादा सावधानी मांगते हैं। इस गाइड में, आप अपनी पहली फ़ाइल लिखने से लेकर सुरक्षित फ़ाइल मोड्स चुनने, एनकोडिंग्स को सही ढंग से संभालने, स्ट्रक्चर्ड डेटा एक्सपोर्ट करने, और प्रोडक्शन‑रेडी पैटर्न्स लागू करने तक पहुँचे।

मुख्य सीख है उद्देश्य: सही मोड चुनें, एनकोडिंग के बारे में स्पष्ट रहें, और जब डेटा महत्वपूर्ण हो तो डिफेंसिव तरीके से लिखें।

Oluseye Jeremiah

लेखक

Oluseye Jeremiah

एआई, एमएल और डेटा साइंस में विशेषज्ञ तकनीकी लेखक, जो जटिल विचारों को स्पष्ट और सुगम बनाते हैं।

FAQs

क्या Python फ़ाइलें asynchronously लिख सकता है?

हाँ, aiofiles जैसी लाइब्रेरीज़ के साथ, हालांकि ज़्यादातर स्क्रिप्ट्स को इसकी ज़रूरत नहीं होती।

सबसे सुरक्षित write मोड कौन‑सा है?

Append ("a") या exclusive ("x"), आपके उद्देश्य पर निर्भर करता है।

मेरा टेक्स्ट करप्ट क्यों है?

एनकोडिंग का मिलान नहीं होना—हमेशा UTF-8 उपयोग करें।

मेरी फ़ाइल कहाँ सेव हो रही है?

स्क्रिप्ट की वर्किंग डायरेक्टरी के सापेक्ष।

क्या मुझे pathlib का उपयोग करना चाहिए?

हाँ, साफ़‑सुथरे, क्रॉस‑प्लैटफ़ॉर्म पाथ हैंडलिंग के लिए।

विषय