Swift (iOS/macOS) में CSV के साथ कार्य: लाइब्रेरीज़ और उदाहरण

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

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

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

Swift (iOS/macOS) में CSV के साथ कार्य: सरल से जटिल तक

\n\n

CSV (Comma-Separated Values) सारणीबद्ध डेटा के आदान-प्रदान के लिए सबसे सामान्य प्रारूपों में से एक है। इसका उपयोग Excel, Google Sheets, डेटाबेस और सरल लॉग से निर्यात के लिए किया जाता है। Swift (iOS, macOS, watchOS, tvOS) इकोसिस्टम में CSV के साथ कार्य करने के लिए कोई अंतर्निहित मॉड्यूल नहीं है, लेकिन कई सिद्ध लाइब्रेरीज़ हैं जो इस प्रक्रिया को काफी सरल बनाती हैं। इस लेख में, हम सर्वोत्तम टूल्स पर विचार करेंगे और कोड के कई उदाहरण लिखेंगे।

\n\n

CSV पार्सर स्वयं क्यों नहीं लिखना चाहिए?

\n

पहली नज़र में CSV सरल लगता है: स्ट्रिंग को अल्पविराम से विभाजित करें - और हो गया। हालाँकि, व्यवहार में कठिनाइयाँ उत्पन्न होती हैं:

\n
    \n
  • फ़ील्ड में अंदर अल्पविराम हो सकते हैं (उदाहरण के लिए, "Smith, John")।
  • \n
  • फ़ील्ड उद्धरण चिह्नों में लिपटे हो सकते हैं, और उद्धरणों के अंदर एस्केप किए गए उद्धरण ("") हो सकते हैं।
  • \n
  • विभिन्न सिस्टम विभिन्न विभाजकों (अल्पविराम, अर्धविराम, टैब) का उपयोग करते हैं।
  • \n
  • एन्कोडिंग (UTF-8, UTF-16, Windows-1251) के साथ समस्याएँ।
  • \n
\n

इसलिए, production कोड के लिए तैयार लाइब्रेरी का उपयोग करने की दृढ़ता से अनुशंसा की जाती है।

\n\n

Swift में CSV के लिए सर्वश्रेष्ठ लाइब्रेरीज़

\n\n

1. SwiftCSV (Naoto Kaneko द्वारा)

\n

सबसे लोकप्रिय और हल्की लाइब्रेरीज़ में से एक। पढ़ने और लिखने का समर्थन करती है, स्वचालित रूप से उद्धरणों और एस्केपिंग को संभालती है। Swift Package Manager (SPM) और CocoaPods के माध्यम से काम करती है।

\n
// SPM के माध्यम से कनेक्शन: .package(url: "https://github.com/naoty/SwiftCSV.git", from: "0.9.0")
\n\n

2. CodableCSV (Dehesa द्वारा)

\n

एक आधुनिक लाइब्रेरी जो Codable प्रोटोकॉल के साथ एकीकृत होती है। CSV को सीधे Swift संरचनाओं में पार्स करने की अनुमति देती है। उन परियोजनाओं के लिए आदर्श जहाँ डेटा में सख्त टाइपिंग है।

\n
// कनेक्शन: .package(url: "https://github.com/dehesa/CodableCSV.git", from: "0.6.0")
\n\n

3. CSwift

\n

न्यूनतम API के साथ एक सरल और तेज़ लाइब्रेरी। छोटी परियोजनाओं या तेज़ प्रोटोटाइपिंग के लिए उपयुक्त।

\n\n

उदाहरण 1: SwiftCSV के साथ CSV पढ़ना

\n

मान लीजिए, हमारे पास users.csv फ़ाइल है:

\n
id,name,email\n1,Иван Иванов,ivan@example.com\n2,Мария Петрова,maria@example.com\n3,Джон Доу,"john.doe@example.com"
\n\n

पढ़ने के लिए कोड:

\n
import SwiftCSV\n\nguard let csvURL = Bundle.main.url(forResource: "users", withExtension: "csv") else {\n    print("फ़ाइल नहीं मिली")\n    return\n}\n\ndo {\n    let csv = try CSV(url: csvURL)\n    // शब्दकोशों की सरणी के रूप में पंक्तियों तक पहुँच\n    for row in csv.rows {\n        if let id = row["id"], let name = row["name"], let email = row["email"] {\n            print("ID: \\(id), नाम: \\(name), ईमेल: \\(email)")\n        }\n    }\n    // या कॉलम के अनुसार पहुँच\n    print("सभी नाम: \\(csv.columns["name"] ?? [])")\n} catch {\n    print("पार्सिंग त्रुटि: \\(error)")\n}
\n\n

उदाहरण 2: SwiftCSV के साथ CSV लिखना

\n
import SwiftCSV\n\nlet headers = ["नाम", "आयु", "शहर"]\nlet rows = [\n    ["अन्ना", "28", "मॉस्को"],\n    ["बोरिस", "35", "सेंट पीटर्सबर्ग"],\n    ["विक्टर", "22", "नोवोसिबिर्स्क"]\n]\n\ndo {\n    let csv = try CSV(string: "", headers: headers, rows: rows)\n    let csvString = csv.output // CSV स्ट्रिंग प्राप्त करें\n    print(csvString)\n    // फ़ाइल में सहेजें\n    let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]\n    let fileURL = documentsPath.appendingPathComponent("output.csv")\n    try csvString.write(to: fileURL, atomically: true, encoding: .utf8)\n    print("फ़ाइल सहेजी गई: \\(fileURL)")\n} catch {\n    print("लिखने में त्रुटि: \\(error)")\n}
\n\n

उदाहरण 3: CodableCSV — संरचनाओं में पार्सिंग

\n

यह उदाहरण दिखाता है कि CSV को डेटा मॉडल के साथ कितनी आसानी से एकीकृत किया जा सकता है:

\n
import CodableCSV\n\nstruct User: Decodable {\n    let id: Int\n    let name: String\n    let email: String\n}\n\                    

अनुशंसाएँ