Swift (iOS/macOS) में CSV के साथ कार्य: SwiftCSV लाइब्रेरी और पार्सिंग की मूल बातें

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

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

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

Swift (iOS/macOS) में CSV के साथ कार्य: SwiftCSV लाइब्रेरी और पार्सिंग की मूल बातें



CSV (कॉमा-सेपरेटेड वैल्यूज़) — सारणीबद्ध डेटा को संग्रहीत करने के लिए सबसे लोकप्रिय प्रारूपों में से एक है। Apple इकोसिस्टम (iOS, macOS) में, CSV फ़ाइलों के साथ कार्य अक्सर बाहरी स्रोतों से डेटा आयात करने, रिपोर्ट निर्यात करने या कॉन्फ़िगरेशन लोड करने के लिए आवश्यक होता है। इस लेख में, हम SwiftCSV लाइब्रेरी पर विचार करेंगे — Swift में CSV पार्स करने के लिए एक हल्का और सुविधाजनक समाधान, साथ ही बिना किसी तृतीय-पक्ष निर्भरता के इस प्रारूप के साथ कार्य करने के मूल उदाहरण।



SwiftCSV क्या है?



SwiftCSV — Swift के लिए एक ओपन-सोर्स लाइब्रेरी है, जो CSV फ़ाइलों को आसानी से पढ़ने और संसाधित करने की अनुमति देती है। यह स्ट्रिंग पार्सिंग और फ़ाइलों के साथ कार्य दोनों का समर्थन करती है, स्वचालित रूप से विभाजक (कॉमा, टैब, सेमीकॉलन) का पता लगाती है और पंक्तियों, स्तंभों और अलग-अलग सेल तक पहुँचने के लिए एक सुविधाजनक API प्रदान करती है।



मुख्य क्षमताएँ:

  • स्ट्रिंग, Data या URL (स्थानीय या दूरस्थ) से CSV पार्स करना।
  • स्तंभ शीर्षकों का समर्थन (पहली पंक्ति कुंजी के रूप में)।
  • नेस्टेड कोट्स और एस्केप किए गए वर्णों के साथ कार्य।
  • विभाजक चुनने की क्षमता (कॉमा, टैब, उपयोगकर्ता-परिभाषित)।
  • न्यूनतम निर्भरताएँ (शुद्ध Swift)।


SwiftCSV की स्थापना



Swift Package Manager (SPM) के माध्यम से लाइब्रेरी जोड़ें:

  1. Xcode में File → Add Packages... चुनें।
  2. रिपॉजिटरी URL डालें: https://github.com/swiftcsv/SwiftCSV.git।
  3. संस्करण चुनें (अंतिम स्थिर संस्करण अनुशंसित है)।
  4. अपने टार्गेट में पैकेज जोड़ें।


या Package.swift में जोड़ें:

dependencies: [    .package(url: "https://github.com/swiftcsv/SwiftCSV.git", from: "0.9.0")]


मूल उदाहरण: स्ट्रिंग से CSV पढ़ना



मान लीजिए, हमारे पास उपयोगकर्ताओं के डेटा वाली एक CSV स्ट्रिंग है:

let csvString = """name,age,cityAlice,30,New YorkBob,25,Los AngelesCharlie,35,Chicago"""


SwiftCSV का उपयोग करके इसे पार्स करें:

import SwiftCSV

do { let csv = try CSV(string: csvString) // पंक्तियों तक शब्दकोश के रूप में पहुँच (कुंजियाँ — शीर्षक) for row in csv.rows { if let name = row["name"], let age = row["age"], let city = row["city"] { print("\\(name) (\\(age) वर्ष) \\(city) में रहता है") } }} catch { print("पार्सिंग त्रुटि: \\(error)")}


आउटपुट:

Alice (30 वर्ष) New York में रहता हैBob (25 वर्ष) Los Angeles में रहता हैCharlie (35 वर्ष) Chicago में रहता है


फ़ाइल से CSV पढ़ना (iOS/macOS)



स्थानीय फ़ाइल (उदाहरण के लिए, Documents फ़ोल्डर या बंडल से) से CSV लोड करने के लिए:

import SwiftCSV

// फ़ाइल का पथ (उदाहरण के लिए, Documents में)let fileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("data.csv")

do { let csv = try CSV(url: fileURL) // स्तंभों तक पहुँच let names = csv.columns["name"] ?? [] print("सभी नाम: \\(names)")} catch { print("त्रुटि: \\(error)")}


बंडल से फ़ाइल के लिए:

if let path = Bundle.main.path(forResource: "data", ofType: "csv") {    let url = URL(fileURLWithPath: path)    let csv = try CSV(url: url)    // डेटा के साथ कार्य}


कस्टम विभाजक और सेटिंग्स



यदि आपका CSV टैब या सेमीकॉलन का उपयोग करता है, तो विभाजक स्पष्ट रूप से निर्दिष्ट करें:

// TSV (टैब-सेपरेटेड वैल्यूज़)let tsv = try CSV(string: "name\\tageAlice\\t30", delimiter: .tab)

// विभाजक — सेमीकॉलनlet csvSemicolon = try CSV(string: "name;ageAlice;30", delimiter: Character(";"))


शीर्षक पार्सिंग को भी बंद किया जा सकता है (पहली पंक्ति सामान्य पंक्ति होगी):

let csvNoHead                    

अनुशंसाएँ