«CSV» در پایتون، نوعی فایل متنی است که داده‌ها را به صورت جدول، ذخیر می‌کند. به عبارت دیگر، CSV فرمتی برای نگهداری داده‌‌ها است. برنامه نویسان فعال در حوزه «علم داده» (Data Science) همیشه با فایل CSV، کار می‌کنند. این نوع ذخیره‌سازی داده‌ها باعث افزایش خوانایی آن‌ها می‌شود. در نتیجه کامپیوتر هم آن‌ها بهتر را متوجه شده و با سرعت بیشتری پردازش‌ می‌کند. فایل‌های CSV را می‌توان با تبدیل کردن فایل‌های «JSON» ایجاد کرد. همچنین با نوشتن کدهای مخصوص در زبان‌های برنامه نویسی مانند پایتون یا جاوا نیز می‌توان آن‌ها را ساخت. توسعه‌دهندگان پایتونی که در حوزه‌های علم داده، هوش مصنوعی و غیره کار می‌کنند باید نوشتن و خواندن داده‌های درون فایل CSV را بلد باشند.

آنچه در این مطلب می‌آموزید:

  • با ساختار فایل‌های CSV آشنا شده و روش ذخیره شدن اطلاعات در آن‌ها را می‌آموزید.

  • تکنیک‌های مختلف خواندن اطلاعات از فایل‌های CSV را یاد می‌گیرید.

  • با ماژول CSV آشنا شده و روش استفاده از آن را می‌آموزید.

  • یاد می‌گیرید که چگونه بر روی فایل‌های CSV داده ذخیره کنید.

  • روش ساخت فایل CSV را با کمک کتابخانه Pandas می‌آموزید.

فهرست مطالب این نوشته
997696

در این مطلب از مجله فرادرس به بررسی فایل‌های CSV در پایتون و روش استفاده از آن‌ها پرداخته‌ایم. ابتدا به شکل خلاصه و مفید فایل CSV را تعریف کردیم. سپس متدهای مختلف کار بر روی این فایل را بررسی کرده‌ایم. این متد‌ها شامل رایج‌ترین تکنیک‌‌های خواندن و نوشتن داده بر روی فایل‌ CSV در زبان برنامه نویسی پایتون هستند.

فایل CSV در پایتون چیست؟

تمام «دانشمندان داده» (Data Scientists) باید روش خواندن اطلاعات از فایل‌های CSV در پایتون را بلد باشند. واژه CSV سرنامی از کلمات عبارت انگلیسی «Comma Separated Values» به معنای «مقادیر جدا شده با کاما» است. کاما به کاراکتر , گفته می‌شود. CSV، فرمتی برای ذخیره‌سازی جدولی داده‌ها در قالب متن است. به عنوان دانشمند داده، هر روز و در امور کاری خود با فایل‌های CSV روبه‌رو می‌شویم. بنابراین مسلط شدن به توانایی خواندن و نوشتن فایل‌های CSV در پایتون برای مدیریت کارآمد و تحلیل صحیح مجموعه‌های داده، ضروری است.

ساختار فایل CSV در پایتون

فرض کنیم که فایلی با نام «Salary_Data.csv» برای نگهداری اطلاعات مربوط به حقوق کارمندان در اختیار داریم. به اولین خط در فایل CSV، هدر یا سربرگ گفته می‌‌شود. هدر شامل نام ستون‌ها یا ویژگی‌های داده‌های ذخیره شده است. بعد از تبدیل شدن فایل CSV به جدول یا دیتا فریم Pandas، کلمات نوشته شده در هدر به عنوان نام‌ ستون‌های جدول به کار برده می‌شوند.

بعد از هدر، خطوط نوشته شده در فایل، نشان دهنده رکورد‌ها یا داده‌ها است. هر خط، یک رکورد را نشان می‌دهد. تمام مقادیر مربوط به این داده‌ها با استفاده از کاما از هم جدا شده‌اند. در تصویر زیر، فایل CSV را مشاهده می‌کنید که با نرم‌‌افزار «نوت پد» (Notepad) باز شده است. این فایل به صورت متن نوشته شده است.

نمایش فایل CSV در نوت پد
کادر آبی هدر فایل CSV را نشان می‌دهد. کادر قرمز هم ردیف‌های داده ذخیره شده در این فایل هستند.

دو روش کلی برای کار با فایل CSV در پایتون

برای کار با فایل‌های CSV در پایتون دو روش اصلی وجود دارند. این روش‌ها را در فهرست پایین معرفی کرده‌ایم.

  • استفاده از ماژول «csv»
  • استفاده از کتابخانه «Pandas»
دو روش کلی برای کار با فایل CSV در پایتون
دو روش کلی برای کار با فایل CSV در پایتون

در ادامه این بخش برای هر کدام از این روش‌ها یک مثال ساده نوشتیم. اما در قسمت‌های بعدی مطلب، متدهای مربوط به آن‌ها را با مثال‌های بیشتری بررسی کرده‌ایم.

استفاده از ماژول CSV

ماژول csv یکی از ماژول‌های درونی پایتون است. این ماژول با هدف کار بر روی فایل‌های CSV طراحی شده است. ماژول csv تمام توابع ساده و اولیه مربوط به خواندن و نوشتن داده‌های CSV را فراهم کرده است.

در کدهای زیر، مثال ساده‌ای را درباره خواندن فایل CSV با استفاده از متد csv.reader  بررسی کرده‌ایم.

در بخش‌های بعدی مطلب، توابع بیشتری از این ماژول را بررسی کرده‌ایم.

استفاده از کتابخانه Pandas

کتابخانه pandas یکی از قدرتمند‌ترین ابزارهایی است که دانشمندان داده در پایتون به کار می‌برند. pandas روش راحتی برای خواندن و کار با داده‌های CSV فراهم کرده است. در کادر زیر، مثال ساده‌ای را درباره خواندن داده از فایل CSV با کمک کتابخانه pandas بررسی کرده‌ایم.

در بخش‌های بعدی مطلب، توانایی‌ این کتابخانه برای کار با فایل‌های CSV را بیشتر بررسی کرده‌ایم.

یادگیری ابزار‌های علم داده در پایتون با کمک فرادرس

زبان برنامه نویسی پایتون یکی از بهترین تکنولوژی‌ها برای کار در حوزه‌هایی مانند علم داده و هوش مصنوعی است. زیرا این زبان دارای ویژگی‌های زیر است.

  • مستحکم و انعطاف‌‌پذیر
  • کتابخانه‌ها و ماژول‌های فراوان
  • یادگیری ساده و خوانایی بالای کدها
  • جامعه‌ کاربری قوی
  • و غیره

بنابراین افراد علاقه‌مند به حوزه‌های علم داده و هوش مصنوعی اقدام به یادگیری پایتون کرده و با این زبان مهارت‌های خود را پرورش می‌دهند. فرادرس هم با توجه به این حوزه از علم و نیاز کشور، آموزش‌های بسیار خوبی را برای آن تولید و منتشر کرده است.

مجموعه آموزش پایتون برای علم داده – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش پایتون برای علم داده هدایت شوید.

وب‌سایت آموزشی فرادرس برای کمک به افرادی که می‌خواهند داده‌کاوی را یاد بگیرند، محتواهای متنوعی منتشر کرده است. این محتواها مناسب افراد مبتدی و حرفه‌ای هستند. همچنین به صورت مطالب مجله و فیلم‌های آموزشی منتشر شده‌اند. فیلم‌های آموزشی فرادرس، نسبت به رقبای خود از امتیازات زیادتری برخوردار هستند. برای مثال می‌توان به در دسترس بودن دائمی، هزینه کمتر نسبت به کلاس‌های حضوری، امکان بازبینی چندباره، تالار‌های گفت‌وگو و غیره اشاره کرد. استفاده از فیلم‌های آموزشی فرادرس یکی از بهترین راه‌ها برای آموزش علم داده است.

در پایین چند مورد از این فیلم‌ها را معرفی کرده‌ایم.

برای مشاهده فیلم‌های بیشتر بر روی تصویر بالا کلیک کرده و به صفحه اصلی این مجموعه آموزشی هدایت شوید. در ادامه روش‌های متنوع خواندن فایل‌های CSV در پایتون را بررسی کرده‌ایم.

خواندن فایل CSV در پایتون

روش‌های زیادی برای خواندن اطلاعات نوشته شده در فایل‌های CSV وجود دارد. مهم‌ترین این روش‌ها در فهرست زیر معرفی کرده‌ایم.

  • خواندن فایل CSV با استفاده از متد csv.reader
  • خواندن فایل CSV با استفاده از تابع .readlines()
  • خواندن فایل CSV با استفاده از ابزارهای کتابخانه Pandas
  • خواندن فایل CSV با استفاده از متد csv.DictReader

فایل CSV در پایتون فقط یکی از فایل‌هایی است که برای تجزیه و تحلیل و آماده‌سازی داده‌ها به کار برده می‌‌شود. برای کسب مهارت در این حوزه و آشنایی با قوی‌ترین ابزارهای پایتون، پیشنهاد می‌کنیم که فیلم آموزش تجزیه و تحلیل و آماده سازی داده ها با پایتون را از فرادرس مشاهده کنید. به منظور کمک به مخاطبان مجله، لینک مربوط به این فیلم را در پایین نیز قرار داده‌ایم.

در ادامه این قسمت، تمام متدهای بالا را یک به یک بررسی کرده‌ایم.

خواندن فایل CSV با استفاده از csv.reader

با استفاده از شیء csv.reader  برنامه‌ نویسان می‌توانند فایل‌های CSV را بخوانند. این شیء در ماژول csv پایتون قرار داد. در این قسمت از مطلب، مراحل خواندن فایل CSV را با کمک این شیء به صورت گام‌به‌گام نوشته‌ایم.

  • گام اول: باید کتابخانه csv را به محیط کدنویسی خود وارد کنیم.

  • گام دوم: فایل CSV را با کمک دستورات زیر، باز کنید.

اگر کدهای بالا را در «ژوپیتر نوت‌بوک» (Jupyter Notebook) اجرا کنید، خروجی به صورت _io.TextIOWrapper  نشان داده خواهد شد. یعنی اینکه نوع شیء باز شده – با نام file  - توسط متد open()، برابر با _io.TextIOWrapper  است.

  • گام سوم: از شیء csv.reader  برای خواندن فایل CSV استفاده کنید.

  • گام چهارم: نام‌ فیلد‌های درون فایل را بدست بیاورید.

برای انجام دادن این کار، ابتدا لیست خالی به نام header  ایجاد کنید. سپس برای بدست آوردن نام تمام فیلدها از متد next()  استفاده کنید. این متد، داده‌ها را به صورت ردیف به ردیف برمی‌گرداند. بنابراین در اولین اجرای متد next()  داده‌های درون هدر فایل برگشت داده می‌‌شوند. با دومین اجرای این متد هم داده‌های مربوط به اولین رکورد در جدول را بدست می‌آوریم. به همین ترتیب ادامه پیدا می‌کند.

خواندن داده‌های CSV در پایتون ذره‌بین و مداد بر روی کاغذ

در کدهای زیر، روش ساخت لیست خالی و ذخیره نام ستون‌ها در این لیست را پیاده‌سازی کرده‌ایم.

بعد از اجرای کدهای بالا در محیط نوت‌بوک، خروجی به شکل [‘YearsExperience’, ‘Salary’] نمایش داده می‌‌شود.

نکته: اگر کدهای خود را در ادیتوری مانند ویژوال استودیو کد می‌نویسید برای مشاهده خروجی باید لیست header  را در داخل تابع print()  قرار بدهید.

  • گام پنجم: ردیف‌های داده‌ را استخارج کنید. برای رسیدن به این هدف، ابتدا لیست خالی با نام rows  ایجاد کنید. سپس بر روی شیء csvreader  پیمایش کرده و هر ردیف را به صورت کامل به لیست rows  اضافه کنید.

در کادر زیر، کدهای مربوط به انجام این عملیات نوشته شده‌اند.

در نهایت لیست ساخته شده باید ساختاری شبیه به شکل زیر داشته باشد.

[
  ['1.1', '39343.00'],
  ['1.3', '46205.00'],
  ['1.5', '37731.00'],
  ['2.0', '43525.00'],
  ['2.2', '39891.00'],
  ['2.9', '56642.00'],
  ['3.0', '60150.00'],
  ['3.2', '54445.00'],
  ['3.2', '64445.00'],
  ['3.7', '57189.00'],
  ['3.9', '63218.00'],
  ['4.0', '55794.00'],
  ['4.0', '56957.00'],
  ['4.1', '57081.00'],
  ['4.5', '61111.00'],
  ['4.9', '67938.00'],
  ['5.1', '66029.00'],
  ['5.3', '83088.00'],
  ['5.9', '81363.00'],
  ['6.0', '93940.00'],
  ['6.8', '91738.00'],
  ['7.1', '98273.00'],
  ['7.9', '101302.00'],
  ['8.2', '113812.00'],
  ['8.7', '109431.00'],
  ['9.0', '105582.00'],
  ['9.5', '116969.00'],
  ['9.6', '112635.00'],
  ['10.3', '122391.00'],
  ['10.5', '121872.00']
]
  • گام ششم: فایل باز شده را ببندید.

برای بستن فایل‌های باز شده از متد close()  در پایتون استفاده می‌کنیم. بعد از بسته شدن فایل، دیگر نمی‌توانیم هیچ عملیاتی بر روی آن انجام دهیم.

در کادر پایین کدهای کامل مربوط به خواندن فایل CSV را در پایتون نوشته‌ایم. این کدها مربوط به توضیح بالا بوده و از متد csv.reader() استفاده می‌کنند.

بعضی از وقت‌ها ممکن است هر برنامه نویسی، بستن فایل باز شده را فراموش کند. این مسئله کاملا طبیعی است. برای جلوگیری از بروز چنین مشکلاتی از عبارت with()  استفاده می‌کنیم. این عبارت به صورت خودکار، منابع اشغال شده را آزاد می‌کند. به عبارت ساده‌تر اگر دستور with()  را به کار ببریم دیگر نیازی به استفاده از متد close()  نداریم.

استفاده از عبارت with برای پیاده‌سازی کد

قبل از استفاده از عبارت with()  لازم است که با سینتکس کامل این عبارت آشنا شویم. در کادر زیر این سینتکس را نوشته‌ایم.

در سینتکس بالا سه پارامتر وجود دارند. این پارامترها را در فهرست زیر معرفی کرده‌ایم.

  • filename: نام همان فایلی است که می‌خواهیم بر روی آن کار کنیم.
  • mode: در این پارامتر، حالت باز شدن فایل را مشخص می‌کنیم. برای این پارامتر می‌توان چهار مقدار مختلف r  و w  و a  و +  را نوشت. این حالت‌ها را در ادامه توضیح داده‌ایم.
  • alias_filename: در این بخش‌ نام مستعاری برای فایل باز شده انتخاب می‌کنیم.

پارامتر mode می‌تواند شامل چهار حالت زیر شود.

  • r: این مقدار یعنی اینکه فایل در حالت فقط خواندنی باز شود.
  • w: این مقدار یعنی اینکه اگر فایل داده شده وجود نداشت، فایلی به همان نام ایجاد شود. سپس می‌توانیم بر روی آن فایل اطلاعات بنویسیم.
  • a: از این مقدار برای اضافه کردن داده به محتوای موجود در فایل استفاده می‌کنیم.
  • +: این مقدار هم برای ساخت فایل جدید به کار برده می‌‌شود. بر روی فایل جدید هم می‌توان اطلاعات نوشت و هم اطلاعات را از روی آن خواند.
خواندن ارقام نوشته شده رنگی و دیجیتالی

در کادر زیر، کدهای مربوط به خواندن فایل CSV با استفاده از عبارت with()  نوشته شده است.

خواندن فایل CSV با استفاده از readlines

در این بخش از مطلب، روش واکشی اطلاعات هدر و ردیف‌های فایل CSV را با استفاده از عبارت‌های open()  و with()  بررسی می‌کنیم. در این تکنیک از کتابخانه csv استفاده نخواهیم کرد.

برای انجام این کار متد .readlines() را به کار می‌بریم. این متد تمام خط‌های درون فایل را به صورت عناصر لیست برمی‌گرداند. هر خط در فایل به یکی از خانه‌های لیست تبدیل می‌شود. از آنجا که اولین ردیف در فایل CSV مربوط به نام ستون‌ها و اصطلاحا هدر فایل است، بنابراین هدر در اندیس 0  لیست قرار می‌گیرد. بقیه عناصر لیست هر کدام از یک ردیف از داده‌های درون فایل CSV تشکیل شده‌اند.

در کدهای زیر روش استفاده از این تکنیک را برای خواندن داده‌های CSV بررسی کرده‌ایم.

نکته: شاید در انتهای هر خط از متن، کاراکترهای «n» قرار گرفته باشند. با کمک متد .strip()  می‌توانیم این کاراکترها را حذف کنیم.

اما اگر فایل CSV، شامل صد‌ها ستون و ویژگی متنوع به ازای هر داده باشد. همچنین هزاران داده گوناگون در این فایل ذخیره شده باشند، دیگر امکان بارگذاری این داده‌ها بر روی لیست‌های پایتون وجود ندارد. برای کار با فایل‌های بزرگ باید از ابزارهای قدرتمندتری استفاده کرد. یکی از بهترین ابزارها برای این کار، کتابخانه پانداس است. در ادامه مطلب، روش استفاده از Pandas را برای خواندن داده‌های CSV بررسی کرده‌ایم.

خواندن فایل CSV با استفاده از Pandas

در این قسمت از مطلب، مراحل خواندن فایل CSV در پایتون را با استفاده از کتابخانه Pandas توضیح داده‌ایم.

  • مرحله اول: کتابخانه pandas  را با استفاده از کد زیر به فایل پایتون وارد کنید. توجه کنید که در انتهای کد، نام مستعار pd  را به این کتابخانه اختصاص دادیم. این کار ضروری نیست اما برای کوتاه‌تر شدن کدنویسی انجام می‌شود.

نکته: منظور از فایل پایتون، همان اسکریپتی است که کدهای پایتون را در آن می‌نویسیم. اما خود این اسکریپت‌ها را باید در محیط مناسب برای برنامه نویسی پایتون توسعه داد. در محیط‌های مختلفی می‌توان کدهای پایتون را نوشته و اجرا کرد. بعضی از این محیط‌ها به صورت اختصاصی برای پایتون توسعه داده شده‌اند. بعضی دیگر از آن‌ها از سایر زبان‌های برنامه نویسی نیز پشتیبانی می‌کنند. برای آشنا شدن با این محیط‌ها می‌توانید مطلب مربوط به آن‌ را در مجله فرادرس مطالعه کنید.

  • مرحله دوم: با استفاده از متد read_csv()  اطلاعات نوشته شده در csv را واکشی کنید. سینتکس کامل استفاده از این متد به شکل pandas.read_csv(filename, delimiter=’,’) است.

بعد از اجرای کدهای بالا خروجی به شکل زیر، نمایش داده می‌‌شود.

YearsExperience	Salary
0	1.1	39343.0
1	1.3	46205.0
2	1.5	37731.0
3	2.0	43525.0
4	2.2	39891.0
5	2.9	56642.0
6	3.0	60150.0
7	3.2	54445.0
8	3.2	64445.0
9	3.7	57189.0
10	3.9	63218.0
11	4.0	55794.0
12	4.0	56957.0
13	4.1	57081.0
14	4.5	61111.0
15	4.9	67938.0
16	5.1	66029.0
17	5.3	83088.0
  • مرحله سوم: نام ستون‌ها را استخراج کنید.

با کمک متد .columns  می‌توانیم نام ستون‌ها یا همان هدر فایل CSV را بدست بیاوریم.

بعد از نوشتن و اجرای دستور بالا خروجی به شکل زیر نمایش داده می‌شود.

Index(['YearsExperience', 'salary'], dtype='object')
  • مرحله چهارم: ردیف‌های داده را استخارج کنید.

داده‌های موجود در هر ستون از دیتا فریم را می‌توانیم به صورت مجزا از هم بدست بیاوریم. برای انجام این کار از نام‌های مربوط هر ستون استفاده می‌کنیم.

فلش‌هایی که جریان داده را به سمت فایل‌های ذخیره شده در فولدر نشان می‌دهند.

به عنوان مثال، با کمک دستور زیر، فقط داده‌های درون ستون Salary در تمام ردیف‌ها نمایش داده می‌شوند.

0	39343.0
1	46205.0
2	37731.0
3	43525.0
4	39891.0
5	56642.0
6	60150.0
7	54445.0
8	64445.0
9	57189.0
10	63218.0
11	55794.0
12	56957.0
13	57081.0
14	61111.0
15	67938.0
16	66029.0
17	83088.0
18	81363.0
19	93940.0
20	91738.0
21	98273.0
22	101302.0
23	113812.0
24	109431.0
25	105582.0
26	116969.0
27	112635.0
28	122391.0
29	121872.0

خواندن فایل CSV در پایتون با استفاده از csv.DictReader

دیکشنری‌های پایتون مانند جدول هش هستند. داده‌ها در دیکشنری به صورت کلید و مقدار ذخیره می‌‌شوند. برای ساختن دیکشنری در پایتون، توسعه‌دهندگان از متد dict()  همراه با کلید‌ها و مقدارها استفاده می‌کنند. ماژول csv در پایتون دارای ابزاری به نام .DictReader  است. این ابزار برای خواندن فایل‌های CSV به کار برده می‌‌شود.

در این بخش از مطلب، با کمک مثال ساده‌‌ای روش استفاده از .DictReader  را توضیح داده‌ایم.

  • مرحله اول: برای استفاده از .DictReader  باید ماژول csv را به محیط برنامه نویسی خود، وارد کنیم.

  • مرحله دوم: با استفاده از تابع open()  و عبارت with()  فایل CSV را در حالت ‘r’ باز می‌کنیم.

  • مرحله سوم: از روی کلاس csv.DictReader()، شیء DictReader  ایجاد می‌کنیم. نام این شیء‌ reader است. در کادر زیر، روش انجام این کار را نوشته‌ایم.

  • مرحله چهارم: اکنون از شیء reader برای خواندن فایل CSV، استفاده می‌کنیم.

برای پیمایش بر روی ردیف‌های فایل CSV می‌توانید از شیء ساخته شده از کلاس DictReader  و حلقه for در پایتون استفاده کنید. با این کار نام مربوط به هر ستون به عنوان کلید نشان داده می‌شود. همین‌طور داده‌های مربوط به هر ستون هم به عنوان مقدار آن کلید نشان داده می‌شوند.

نوشتن فایل CSV در پایتون

روش‌های مختلفی برای نوشتن داده بر روی فایل CSV در پایتون، وجود دارند. در این بخش از مطلب، چهار مورد از بهترین روش‌ها را معرفی کرده‌ایم.

  • نوشتن داده در فایل CSV با csv.writer
  • نوشتن داده در فایل CSV با تابع writelines()
  • نوشتن داده در فایل CSV با Pandas
  • نوشتن داده در فایل CSV با csv.DictWriter
مربع زردی که با فلش به چهار مستطیل آبی متصل شده است.

در ادامه مطلب،‌ تمام روش‌های بالا را یک به یک به ترتیب، بررسی کرده‌ایم.

نوشتن داده در فایل CSV با csv.writer

تابع csv.writer() شیئی از نوع writer  برمی‌گرداند. این شیء‌ می‌تواند داده‌های داده شده را به رشته‌های جدا شده از هم با علامت کاما , تبدیل کند. در واقع اجزای رشته را با استفاده نماد‌های مشخص شده‌ از هم جدا می‌کند.

برای مثال، فرض کنیم در حال ذخیره کردن اطلاعات مربوط به سه دانش‌آموز مختلف هستیم. اطلاعات دانش‌آموزان در قالب (Name, M1 Score, M2 Score)  داده شده‌اند. در کد زیر، روش تعریف کردن هدر و داده‌های مربوط به هر ردیف را نشان داده‌ایم.

اکنون روش نوشتن این داده‌ها را در فایل CSV بررسی می‌کنیم. برای ذخیره‌سازی داده‌ها از متد csv.writer استفاده کرده‌ایم.

  • مرحله اول: قبل از هر چیز باید کتابخانه csv را به محیط کدنویسی خود وارد کنیم.

بقیه کدهای این فرایند به یکدیگر مرتبط هستند. به همین دلیل، ابتدا مراحل انجام کار را توضیح داده و سپس تمام کدها را در کنار هم نوشته‌ایم.

  • مرحله دوم: برای فایل خود نامی را در نظر می‌گیریم. سپس با استفاده از تابع open()  این فایل را باز می‌کنیم.
  • مرحله سوم: با استفاده از کلاس csv.writer()، شیئی به نام csvwriter  ایجاد می‌کنیم.
  • مرحله چهارم: در شیء‌ ساخته شده، هدر مورد نظر خود را می‌نویسیم.
  • مرحله پنجم: بقیه داده‌های داده شده را با کمک کد csvwriter.writerows(data)  می‌‌نویسیم.

در کادر زیر، کدهای مربوط به مرحله دو تا پنج نوشته شده‌اند.

بعد از اجرای کدهای بالا فایل CSV ساخته شده به شکل زیر، خواهد بود.

نمایش فایل CSV در نوت پد

نوشتن داده در فایل CSV با تابع writelines

تابع writelines() بر روی لیستی پیمایش می‌کند. سپس تمام عناصر موجود در آن لیست را به رشته تبدیل می‌کند. همیشه قبل از ذخیره‌سازی داده‌ها در فایل CSV باید آن‌ها را به رشته تبدیل کنیم. تابع writelines() بعد از تبدیل کردن همه عناصر لیست به رشته، آن‌ها را در فایل CSV ذخیره می‌کند.

در کدهای زیر، روش کار این تابع نوشته شده است.

تمام مراحل انجام شده در کدهای بالا را در فهرست زیر نوشته‌ایم.

  1. در خط اول هدر فایل CSV را تعریف کرده‌ایم.
  2. در خط دوم داده‌هایی را تعریف کرده‌ایم که باید در فایل ذخیره شوند.
  3. در خط ۳ نام فایل را مشخص کردیم.
  4. درخط ۵ فایل مورد نظر را درحالت ‘w’  برای نوشتن باز کردیم.
  5. در خط ۷ لیست خالی lines را تعریف کردیم. ابتدا تمام داده‌ها را به رشته تبدیل کرده و در این لیست ذخیره می‌کنیم.
  6. سپس در خط ۹ داده‌های مربوط به هدر فایل CSV را به رشته تبدیل کرده و به لیست lines اضافه کردیم.
  7. از خط ۱۰ تا خط ۱۱ هم داده‌های مورد نظر را به لیست lines اضافه کردیم.
  8. در خط ۱۵ تمام عناصر ذخیره شده در لیست lines را با کمک دستور file.writelines(lines) در فایل CSV نوشتیم.

بعد از اجرای کدهای بالا، فایل CSV به شکل زیر ساخته می‌شود.

نمایش فایل CSV در نوت پد

استفاده از Pandas برای نوشتن داده در فایل CSV

کتابخانه Pandas یکی از کتابخانه‌های تخصصی برای کار بر روی داده‌ها است. در حوزه‌هایی مانند علم داده این کتابخانه، کاربرد زیادی دارد. استفاده از ابزار Pandas، نوشتن و خواندن داده بر روی فایل‌های CSV در پایتون را راحت‌تر می‌کند.

در این بخش از مطلب، مراحل نوشتن داده بر روی فایل CSV را با کمک کتابخانه Pandas توضیح داده‌ایم.

  • مرحله اول: قبل از هر کاری باید کتابخانه Pandas را در محیط کدنویسی خود وارد کنیم.

  • مرحله دوم: از کلاس pd.DataFrame  برای ساخت دیتا فریم‌های Pandas استفاده می‌کنیم. سینتکس این کد را در پایین نوشته‌‌ایم.

در این سینتکس، دو پارامتر مختلف وجود دارند. این پارامترها را در فهرست زیر توضیح داده‌ایم.

  • data: در این پارامتر، اطلاعاتی را قرار می‌دهیم که باید به عنوان رکورد در فایل CSV ذخیره شوند.
  • columns: در این پارامتر هم نام‌ ستون‌ها را می‌نویسیم. قبل از ارسال نام‌ها به دیتا فریم، آن‌ها را به شکل رشته در لیست ذخیره می‌کنیم.

در کد پایین – در خطوط ۱ و ۲ – هدر و داده‌های دلخواهی را مشخص کرده‌ایم. سپس این اطلاعات را با کمک کد pd.DataFrame(data, columns=header)  در دیتا فریم ذخیره کردیم.

  • مرحله سوم: با استفاده از تابع to_csv()  اطلاعات آماده شده را در فایل CSV می‌نویسیم. سینتکس این کد را در پایین نوشته‌‌ایم.

در سینتکس بالا سه پارامتر وجود دارند. این پارامترها را در فهرست پایین، توضیح داده‌ایم.

  • filename: به‌جای این پارامتر، نام فایل CSV مورد نظر خود را می‌نویسیم.
  • sep: به‌جای این پارامتر، کاراکتری قرار می‌گیرد که به عنوان جدا کننده‌ی ستون‌ها در هر ردیف استفاده خواهد شد.
  • index: این پارامتر هم دو مقدار True  و False  را می‌پذیرد. یعنی اینکه برای ردیف‌های داده شماره‌‌گذاری بکند یا نه.

نکته: در این سینتکس، کاراکتر مربوط به جدا‌سازی رشته‌ها به صورت پیش‌فرض ‘,’  است.

در پایین، داده‌های آماده شده در دیتا فریم را در فایلی با نام دلخواه Stu_data.csv  ذخیره کرده‌ایم.

بعد از اجرای کدهای بالا، فایل CSV به شکل زیر ساخته می‌شود.

نمایش فایل CSV در نوت پد

نوشتن داده در فایل CSV با csv.DictWriter

با استفاده از تابع .DictReader  در ماژول csv هم می‌توانیم داده‌های خود را در فایل‌های CSV ذخیره کنیم. در پایین مراحل مربوط به این کار را یک به یک نوشته‌ایم.

  • مرحله اول: طبق معمول اولین کار، وارد کردن ماژول csv در محیط کدنویسی است.

  • مرحله دوم:‌ با استفاده از تابع open()  شیء فایل جدیدی ایجاد کنید. این فایل را درحالت ‘w’  قرار بدهید. زیرا می‌خواهیم در آن فایل، اطلاعات بنویسیم.

در کادر زیر، روش ساخت فایل جدید را با کمک تابع open()  نشان داده‌ایم. نام این فایل را برابر با Students_Data.csv  قرار داده‌ایم.

  • مرحله سوم: داده‌هایی که می‌خواهید در فایل CSV ذخیره شوند، را ابتدا باید دسته‌بندی کنید. این داده‌ها باید به صورت لیستی از دیکشنری‌‌ها نوشته شوند. در پایین، روش نوشتن داده‌ها را نشان داده‌ایم.

  • مرحله چهارم: با استفاده از فایل ساخته شده، شیئی از کلاس csv.DictWriter ایجاد می‌کنیم. در هنگام ساخت این شیء، باید فایل، نام ستون‌ها و کاراکتر جدا کننده مشخص شوند. توجه داشته باشید که کاراکتر جدا کننده به صورت پیش‌فرض , است.

در کدهای پایین روش ساخت شیء csv.DictWriter را بررسی کرده‌ایم.

  • مرحله پنجم: با استفاده از متد writeheader()، ردیف هدر را می‌نویسیم.

  • مرحله ششم: از متد writerows()  برای نوشتن داده بر روی فایل CSV استفاده می‌کنیم.

اجرای این مراحل، باعث ساخته شدن فایل جدیدی به نام Students_Data.csv  می‌‌شود. این فایل از نوع CSV است. در این فایل، کلمات Name  و M1 Score  و M2 Score  نام‌های مربوط به ستون‌ها هستند. در واقع این‌ عبارت‌ها در هدر نوشته شده‌اند. همچنین مقادیر داده مختلف در زیر این ستون‌ها به شکل مرتب و منظم نوشته می‌شوند.

چگونه از فرادرس برای یادگیری پایتون کمک بگیریم؟

زبان برنامه نویسی پایتون به شکل دائم در حال پیشرفت و توسعه است. این زبان یکی از پرطرفدارترین زبان‌های برنامه نویسی در دنیا است. زیرا به سادگی می‌توان آن را آموخت و همچنین قدرت زیادی هم دارد. اما برای توانایی در استفاده از قدرت آن باید نکات فنی پایتون را بدرستی یادگرفت. به این منظور، وجود منابع یادگیری با کیفیت، مانند فیلم‌های آموزشی کمک بسیار زیادی می‌کند. مطالب و فیلم‌های آموزشی فرادرس از کیفیت بالایی برخوردار هستند.

فیلم‌های آموزش فرادرس از نکات ساده و ابتدایی تا مفاهیم پیشرفته‌ای مانند شبکه‌های عصبی و یادگیری ماشین را پوشش می‌دهند. در پایین، چند مورد از فیلم‌های آموزشی مربوط به این زبان را معرفی کرده‌ایم.

برای مشاهده فیلم‌های بیشتر بر روی تصویر زیر کلیک کنید.

مجموعه آموزش پروژه محور برنامه نویسی پایتون (Python)
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش پروژه محور برنامه نویسی پایتون هدایت شوید.

جمع‌بندی

فایل CSV در پایتون به فایلی گفته می‌شود که داده‌ها را در ساختاری منظم و به شکل متن ذخیره می‌کند. در این فایل‌ها اطلاعات به صورت ردیف‌های منظم – از بالا به پایین – در چند ستون مختلف، نوشته می‌‌شوند. به ردیف اول، هدر گفته می‌شود. دانشمندان داده، تحلیل‌گران، فعالان عرصه تولید مدل‌های‌ هوش مصنوعی و غیره، همگی به صورت روزانه از این فایل‌ها استفاده می‌کنند.

در این مطلب از مجله فرادرس، انواع روش‌های مدیریت فایل‌های CSV در پایتون را بررسی کردیم. این روش‌ها شامل تکنیک‌های کاربردی برای خواندن و نوشتن اطلاعات در فایل CSV هستند. تسلط بر روی مهارت‌های مربوط به کار با فایل CSV در پایتون یکی از توانایی‌های ضروری برای دانشمندان و تحلیل‌گران داده به شمار می‌رود. اجرای درست این عملیات می‌تواند بهره‌وری را افزایش دهد و پردازش داده‌ها را کارآمدتر کند.

source

توسط expressjs.ir