csv — العمل مع ملفات CSV في Rust

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو csv؟

csv هي مكتبة قياسية في لغة Rust لقراءة وكتابة الملفات بتنسيق CSV (Comma-Separated Values). توفر واجهة عالية الأداء ومرنة للعمل مع البيانات الجدولية، وتدعم السيناريوهات البسيطة والمعقدة (مثل الهروب، والمحددات المختلفة، والرؤوس).

لماذا نحتاجها؟

CSV هو أحد أكثر التنسيقات شيوعًا لتبادل البيانات بين التطبيقات وقواعد البيانات وجداول البيانات. تتيح مكتبة csv ما يلي:

  • تحميل ومعالجة مجموعات البيانات الكبيرة بسرعة (السجلات، التصدير من Excel/Google Sheets، تفريغ قواعد البيانات).
  • إنشاء تقارير وتصدير بشكل مناسب للقراءة البشرية.
  • دمج تطبيقات Rust مع الأنظمة التي تعمل عبر CSV (مثل الأنظمة المالية، خطوط أنابيب التعلم الآلي).

كيف يتم التثبيت؟

أضف التبعية في ملف Cargo.toml لمشروعك:

[dependencies]csv = "1.3"

يتم التثبيت تلقائيًا عند البناء عبر cargo build.

الوظائف الأساسية

  • القراءة — التكرار عبر الصفوف مع تحليل الأنواع تلقائيًا.
  • الكتابة — إنشاء CSV من هياكل البيانات مع التسلسل.
  • التخصيص — محدد مخصص (علامة تبويب، فاصلة منقوطة)، الهروب، الضغط.
  • العمل مع الرؤوس — الوصول إلى الأعمدة بالاسم.
  • التسلسل/إلغاء التسلسل — التكامل مع serde للتحويل التلقائي للهياكل.

مثال كود بلغة Rust

use csv::ReaderBuilder;use serde::Deserialize;use std::error::Error;

#[derive(Debug, Deserialize)]struct Record { name: String, age: u8, city: String,}

fn main() -> Result<(), Box<dyn Error>> { let data = "name,age,cityAlice,30,New YorkBob,25,London"; let mut reader = ReaderBuilder::new() .has_headers(true) .from_reader(data.as_bytes());

for result in reader.deserialize::<Record>() { let record: Record = result?; println!("{:?}", record); } Ok(())}

متى يتم استخدامها؟

مكتبة csv مثالية لـ:

  • معالجة السجلات، التصدير من CRM/ERP.
  • إنشاء خطوط أنابيب ETL (استخراج، تحويل، تحميل).
  • تحضير البيانات للتعلم الآلي.
  • استيراد/تصدير التكوينات في أدوات CLI البسيطة.

إذا كنت بحاجة إلى أداء عالٍ وأمان في الأنواع — فإن csv هي الخيار الأفضل لـ Rust.

توصيات