Go में फ़ाइल सिस्टम के साथ काम करना: शुरुआती लोगों के लिए

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Go में फ़ाइल सिस्टम के साथ काम करना: शुरुआती लोगों के लिए

\n\n

Go (Golang) एक आधुनिक कंपाइल की जाने वाली भाषा है जो अपनी सरलता, प्रदर्शन और अंतर्निहित टूल्स के लिए प्रसिद्ध है। किसी भी backend-डेवलपर के प्रमुख कार्यों में से एक फ़ाइल सिस्टम के साथ इंटरैक्शन है: कॉन्फ़िगरेशन पढ़ना, लॉग लिखना, अस्थायी फ़ाइलें और निर्देशिकाएँ बनाना। इस लेख में, हम Go में फ़ाइलों और फ़ोल्डरों के साथ बुनियादी संचालन को समझेंगे, शुरुआत से शुरू करते हुए। यह सामग्री शुरुआती लोगों के लिए है, इसलिए प्रत्येक चरण के साथ समझने योग्य कोड उदाहरण होंगे।

\n\n

फ़ाइलों के साथ काम करने के लिए मुख्य पैकेज

\n\n

Go की मानक लाइब्रेरी में फ़ाइल सिस्टम के साथ काम करने के लिए दो मुख्य पैकेज हैं:

\n
    \n
  • os — फ़ाइलों, फ़ोल्डरों, एक्सेस अधिकारों और प्रक्रियाओं के साथ निम्न-स्तरीय कार्य।
  • \n
  • io/ioutil (Go 1.16 में अप्रचलित, लेकिन फिर भी उपयोग होता है) — फ़ाइलों को पूरी तरह से पढ़ने/लिखने के लिए सुविधाजनक फ़ंक्शन।
  • \n
  • io — स्ट्रीमिंग इनपुट/आउटपुट के लिए इंटरफ़ेस।
  • \n
  • bufio — बफ़र्ड रीडिंग/राइटिंग (बड़ी फ़ाइलों के लिए उपयोगी)।
  • \n
\n\n

Go 1.16 से शुरू करके, ioutil के बजाय os पैकेज (os.ReadFile, os.WriteFile) से फ़ंक्शन का उपयोग करने की अनुशंसा की जाती है। हम आधुनिक दृष्टिकोण पर भरोसा करेंगे।

\n\n

फ़ाइलें पढ़ना

\n\n

एक छोटी फ़ाइल को पूरी तरह से पढ़ने का सबसे सरल तरीका os.ReadFile का उपयोग करना है। यह बाइट्स का एक स्लाइस और एक त्रुटि लौटाता है।

\n\n
package main\n\nimport (\n    "fmt"\n    "os"\n)\n\nfunc main() {\n    // फ़ाइल को पूरी तरह से पढ़ना\n    data, err := os.ReadFile("example.txt")\n    if err != nil {\n        fmt.Println("फ़ाइल पढ़ने में त्रुटि:", err)\n        return\n    }\n    fmt.Println("फ़ाइल की सामग्री:")\n    fmt.Println(string(data))\n}\n
\n\n

यदि फ़ाइल बड़ी है (उदाहरण के लिए, सैकड़ों मेगाबाइट की लॉग फ़ाइल), तो इसे bufio.Scanner के साथ पंक्ति दर पंक्ति या ब्लॉक में पढ़ना बेहतर है:

\n\n
package main\n\nimport (\n    "bufio"\n    "fmt"\n    "os"\n)\n\nfunc main() {\n    file, err := os.Open("bigfile.log")\n    if err != nil {\n        fmt.Println("फ़ाइल खोलने में त्रुटि:", err)\n        return\n    }\n    defer file.Close() // फ़ाइल को बंद करना अनिवार्य है\n\n    scanner := bufio.NewScanner(file)\n    for scanner.Scan() {\n        line := scanner.Text()\n        fmt.Println(line) // पंक्ति को प्रोसेस करना\n    }\n\n    if err := scanner.Err(); err != nil {\n        fmt.Println("स्कैनिंग में त्रुटि:", err)\n    }\n}\n
\n\n

defer file.Close() पर ध्यान दें — यह सुनिश्चित करता है कि फ़ंक्शन के समाप्त होने के बाद फ़ाइल बंद हो जाएगी, भले ही कोई त्रुटि हो।

\n\n

फ़ाइलों में लिखना

\n\n

फ़ाइल में डेटा लिखने के लिए os.WriteFile (फ़ाइल बनाता/ओवरराइट करता है) या os.Create + Write (अधिक लचीली लिखने के लिए) का उपयोग करें।

\n\n
package main\n\nimport (\n    "fmt"\n    "os"\n)\n\nfunc main() {\n    // फ़ाइल में एक स्ट्रिंग लिखना\n    text := "नमस्ते, दुनिया!\\nदूसरी पंक्ति।"\n    err := os.WriteFile("output.txt", []byte(text), 0644)\n    if err != nil {\n        fmt.Println("लिखने में त्रुटि:", err)\n        return\n    }\n    fmt.Println("फ़ाइल सफलतापूर्वक लिखी गई")\n}\n
\n\n

पैरामीटर 0644 Unix-शैली में एक्सेस अधिकार है (मालिक पढ़/लिख सकता है, बाकी केवल पढ़ सकते हैं)।

\n\n

यदि फ़ाइल के अंत में डेटा जोड़ना (append) है, तो os.O_APPEND फ़्लैग के साथ os.OpenFile का उपयोग करें:

\n\n
package main\n\nimport (\n    "fmt"\n    "os"\n)\n\nfunc main() {\n    file, err := os.OpenFile("log.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)\n    if err != nil {\n        fmt.Println("फ़ाइल खोलने में त्रुटि:", err)\n        return\n    }\n    defer file.Close()\n\n    _, err = file.WriteString("लॉग में नई प्रविष्टि\\n")\n    if err != nil {\n        fmt.Println("लिखने में त्रुटि:", err)\n    }\n}\n
\n\n

निर्देशिकाओं के साथ काम करना

ब्लॉग

पुस्तक अनुशंसाएँ