استخدم وحدة Python CSV للكتابة ، والتحليل ، وقراءة ، وتحديث ملفات CSV

في وحدة Python CSV هذه ، يمكنك إتقان ما يقرأه CSV ، وحوض التحليل والكتابة التي يمكنك استخدامها لفتح وحفظ ملفات CSV بتنسيق قابل للقراءة

تحدثنا في الفصل الثاني السابق عن كيفية تثبيت beautifulsoup4 والطلبات وlxml وhtml5lib والنص sublime، ثم استخراج بيانات الويب بواسطتها . ولكن لم يتم حفظ البيانات في ملف أو قاعدة بيانات حتى الآن، لذلك ليس من المناسب لك استخدامها لأغراض عملك وعمليات العمل.

لذلك في هذا البرنامج التعليمي لـ Python، سنتحدث عن كيفية كتابة نصوص Python لتحليل البيانات وحفظها في ملفات CSV محليًا وقراءة ملفات CSV في بيئة Python.

بحلول نهاية هذا البرنامج التعليمي لـ Python، يمكنك إتقان طرق قراءة وتحليل وكتابة ملفات CSV التي يمكنك استخدامها لفتح ملفات CSV وحفظها بتنسيق قابل للقراءة، على الرغم من أننا لن نتعمق في طرق الكتابة المحددة التي سنتحدث عنها عنه في الفصل التالي من دروس بايثون.

جدول المحتويات: وحدة بايثون CSV

استيراد وحدة CSV

في السابق، شاركت في استيراد وحدة beautifulsoup والطلبات من أجل استخراج بيانات الويب المستهدفة وإظهار البيانات الصحيحة على Sublime Text. لذلك عند الحديث عن نصوص CSV في بايثون، نحتاج إلى استيراد وحدة CSV. الطريقة سهلة للغاية عن طريق كتابة البرنامج النصي أدناه في بداية ملف بايثون.

import csv

دروس بايثون – كتابة ملفات CSV

من أجل إنشاء ملف CSV جديد وكتابته لحفظ بياناتك المسروقة، عليك أن تتعلم هاتين الطريقتين في لغة بايثون – open() وwriter()

فتح () بناء الجملة: فتح (ملف، الوضع)

في وسيطة الطريقة، يعني الملف مسار واسم الملف الذي يمكنك فتحه بعد انتهاء العمل. بعد ذلك، يعني الوضع سلسلة تحدد الوضع الذي تريد فتح الملف فيه، وبشكل أساسي، هناك أربعة أوضاع

"ص" – قراءة – القيمة الافتراضية. يفتح ملفا للقراءة، خطأ إذا كان الملف غير موجود

"أ" – إلحاق – يفتح ملفًا للإلحاق، وينشئ الملف إذا لم يكن موجودًا

"w" – كتابة – يفتح ملفًا للكتابة، وينشئ الملف إذا لم يكن موجودًا

"x" – إنشاء – إنشاء الملف المحدد، وإرجاع خطأ في حالة وجود الملف

في هذه الحالة، نحتاج إلى إنشاء ملف CSV جديد وكتابته، حتى نتمكن من استخدام "w" أو "x"

على سبيل المثال، يمكننا إنشاء متغير (csv_file) وكتابة سطر من التعليمات البرمجية مثل هذا:

csv_file = open('ecommerce_scrape.csv','w')

Writer() بناء الجملة: الكاتب (متغير)

يقوم الأسلوب csv.writer() بإرجاع كائن كاتب يقوم بتحويل بيانات المستخدم إلى سلاسل محددة على الكائن الشبيه بالملف المحدد.

على سبيل المثال، يمكننا إنشاء متغير (csv_writer) وكتابة سطر من التعليمات البرمجية مثل هذا:

csv_writer = csv.writer(csv_file)

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

لا نتوقع قراءة واستخدام البيانات من صندوق Excel واحد. بدلاً من ذلك، بغض النظر عما إذا كنا نحفظ الملفات محليًا أو على الخادم، فإننا نهدف إلى تقسيم البيانات الأولية إلى عناوين صفوف مختلفة، والتي تكون مناسبة لنا للقراءة والاتصال والاستخدام. من أجل الحصول على البيانات بالتنسيق المتوقع، نحتاج إلى تحليل البيانات. اليوم، سوف نقدم طريقة – writerow(). في الأساس، يتم استخدام طريقة writerow() لإنشاء عنوان كل عمود وكتابة صف من البيانات في الملف المحدد.

بناء جملة Writerow() : writerow([' '],[' '],[' '],……, أو [متغير، متغير 2، متغير 3،….]

على سبيل المثال، يمكننا كتابة سطر من التعليمات البرمجية مثل هذا:

csv_writer.writerow(['Headline','Summary'])

الآن تتم تسمية كل عمود في ملف CSV، ومن ثم يمكننا تغذية البيانات المسروقة حسب الأعمدة.

على سبيل المثال، يمكننا كتابة سطر من التعليمات البرمجية مثل هذا:

csv_writer.writerow([headline,summary])

كما تعلم، فإن الوسيطات الموجودة في صف الكتابة أعلاه هي جميع المتغيرات التي أنشأناها لاستخراج الأقسام المختلفة من البيانات في صفحة مقالة التجارة الإلكترونية Easy2Digital. يرجى وضع ذلك في الاعتبار وتجنب استخدام تسمية الأعمدة التي قمنا بها في الخطوة السابقة.

(ملاحظة: سنناقش كيفية استخراج بيانات محددة في Python3 على Sublime Text في الفصل التالي. قبل ذلك، يمكنك الرجوع إلى المقالة الأخرى " Web Scraping with Google Sheets ImportXML لجمع معلومات سعر المنتج تلقائيًا "، حيث يمكنك ابحث عن طرق لاستخدام أدوات المطورين لتحديد موقع ومسار البيانات المحددين والتعرف على بنية HTML.)

حفظ البيانات المسروقة في ملفات CSV

من أجل إخبار Python3، تم الانتهاء من عمل ترميز ملف CSV وتصدير ملف، أو تحديث البيانات إلى موقع الخادم، نحتاج إلى استخدام طريقة – إغلاق ()

طريقة ملف بايثون Close() تغلق الملف المفتوح. لا يمكن قراءة أو كتابة ملف مغلق بعد الآن. أي عملية تتطلب فتح الملف ستؤدي إلى ظهور خطأ ValueError بعد إغلاق الملف. يُسمح باستدعاء Close() أكثر من مرة.

تقوم لغة Python تلقائيًا بإغلاق الملف عند إعادة تعيين الكائن المرجعي للملف إلى ملف آخر. من الممارسات الجيدة استخدام طريقة الإغلاق () لإغلاق ملف.
على سبيل المثال، يمكننا كتابة سطر من التعليمات البرمجية مثل هذا:

csv_file.close()

ثم يمكننا إدخال "command + B". لا يزال يعرض العنوان والملخص على النص Sublime، ولكنك تجد أن هناك ملف CSV جديد تقوم بتسميته في البرنامج النصي (ecommerce_scrape.csv) يظهر في الموقع المخصص.

إذا حاولت فتحه، يمكنك العثور على جميع المعلومات المسروقة محفوظة في ملف CSV. لا توجد قيود على البيانات التي تريد استخراجها تلقائيًا، ومكان حفظ هذا الملف الجديد. يعتمد الأمر فقط على غرض عملك وعملية العمل.

قراءة ملفات CSV

في كثير من الحالات، قد تحتاج إلى كتابة برنامج Python لأتمتة سير العمل بالكامل، مثل تحديث حاسبة أرباح SKU للتجارة الإلكترونية. وبالتالي فإن فتح الملفات الموجودة والحصول على المعلومات يعد عنصرًا أساسيًا في العملية التلقائية. سنقدم هنا نمطين مع ..as وline in، وطريقتين – Reader() وnext()

أولاً، لنستورد وحدة CSV ونفتح الملف الموجود الذي أنشأناه للتو بتنسيق CSV. كما ترون، هنا نستخدم 'r' في الطريقة المفتوحة بدلاً من 'x' أو 'w' لأننا نريد قراءة المعلومات وتعريفها كملف csv_file باستخدام open….as

import csv

with open('ecommerce_scrape.csv','r') as csv_file:

بعد ذلك، نحتاج إلى استخدام طريقة القارئ للحصول على المعلومات وإظهارها لنا، لذلك نقوم بإنشاء متغير csv_reading بالإضافة إلى سطر التعليمات البرمجية المدرج أدناه

csv_reading = csv.reader(csv_file)

ملاحظة: تقوم طريقة Reader () بإرجاع كائن قارئ وهو عبارة عن مكرر للأسطر في ملف CSV.

إذا حاولنا طباعة (csv_reading) وأدخلنا الأمر b، فإن الإرجاع هو معلومات الكائن.

لإظهار المعلومات الموجودة في الملف، نحتاج إلى كتابة سطر من التعليمات البرمجية باستخدام السطر مثل هذا:

للحلقات

for line in csv_reading:

بعد ذلك، ليس من الضروري فهم جميع المعلومات، لذا يمكنك تعديل وتحديد المعلومات التي تريد استخدامها باستخدام next() و[number].
تقوم الدالة التالية () بإرجاع العنصر التالي من المكرّر. على سبيل المثال، في هذه الحالة، إذا لم تكن بحاجة إلى اسم عنوان كل عمود، فيمكنك استخدام:

next(csv_reading)

وأخيرًا وليس آخرًا، قد تحتاج فقط إلى معلومات عمود محددة مثل عنوان المقالة هنا. في البرمجة العامة، 0 يعني الأول. لذا، إذا كنا بحاجة فقط إلى عنوان المقالة، فيمكننا إضافة سطر بعده بطريقة الطباعة مثل هذا:

print(line[0])

كما ترون، فهو يعرض فقط جميع عناوين المقالات في لوحة معلومات الإرجاع.

من السهل جدا، أليس كذلك؟ أتمنى أن تستمتع بقراءة الفصل الثالث: كيفية كتابة ملفات CSV مع البيانات المسروقة وتحليلها وقراءتها. إذا قمت بذلك، فيرجى دعمنا من خلال القيام بأحد الأشياء المذكورة أدناه، لأنها تساعد قناتنا دائمًا.

  • ادعم قناتنا وتبرع لها عبر PayPal ( paypal.me/Easy2digital )
  • اشترك في قناتي وفعل جرس التنبيهات قناة Easy2Digital على اليوتيوب .
  • اتبع وأعجب بصفحتي Easy2Digital Facebook
  • شارك المقال على شبكتك الاجتماعية باستخدام الوسم #easy2digital
  • قم بشراء المنتجات باستخدام رمز خصم Easy2Digital بنسبة 10% ( Easy2DigitalNewBuyers2020)
  • قمت بالتسجيل في النشرة الإخبارية الأسبوعية لتلقي أحدث المقالات ومقاطع الفيديو وأكواد الخصم من Easy2Digital
  • اشترك في عضويتنا الشهرية من خلال Patreon للاستمتاع بالمزايا الحصرية ( www.patreon.com/louisludigital )

إذا كنت مهتمًا بالفصل التالي، فيرجى مراجعة المقالة أدناه

البرنامج التعليمي لـ Python 4: إنشاء روبوت لموقع الويب لاستخراج بيانات موقع ويب معينة باستخدام BeautifulSoup

التعليمات:

س1: ما هي مكتبة CSV Python؟

ج: مكتبة CSV Python هي وحدة نمطية في Python توفر وظائف للعمل مع ملفات القيم المفصولة بفاصلة (CSV).

س2: كيف يمكن استخدام مكتبة CSV Python؟

ج: يمكن استخدام مكتبة CSV Python لقراءة وكتابة ملفات CSV، وتحليل بيانات CSV، ومعالجة بيانات CSV بطرق مختلفة.

س3: ما هي بعض حالات الاستخدام الشائعة لمكتبة CSV Python؟

ج: تتضمن بعض حالات الاستخدام الشائعة لمكتبة CSV Python استيراد البيانات وتصديرها بتنسيق CSV، وتحليل بيانات CSV ومعالجتها، وإنشاء تقارير أو ملخصات من بيانات CSV.

س4: هل مكتبة CSV Python مدمجة أم أحتاج إلى تثبيتها؟

ج: تعد مكتبة CSV Python جزءًا من المكتبة القياسية في Python، لذا فهي مضمنة بالفعل مع تثبيت Python الخاص بك ولا تتطلب أي خطوات تثبيت إضافية.

س5: هل يمكن لمكتبة CSV Python التعامل مع ملفات CSV الكبيرة؟

ج: نعم، تم تصميم مكتبة CSV Python للتعامل مع ملفات CSV الكبيرة بكفاءة. فهو يوفر طرقًا مختلفة لقراءة البيانات وكتابتها في أجزاء، مما يساعد على الحفاظ على الذاكرة وتحسين الأداء عند العمل مع مجموعات البيانات الكبيرة.

س6: هل هناك أي قيود أو محاذير عند استخدام مكتبة CSV Python؟

ج: أحد قيود مكتبة CSV Python هو أنها لا تدعم جميع الأشكال المحتملة لملفات CSV، مثل تلك التي تحتوي على بنيات متداخلة معقدة أو محددات غير قياسية. ومع ذلك، بالنسبة لحالات الاستخدام الأكثر شيوعًا، توفر المكتبة وظائف أكثر من كافية.

س7: هل مكتبة CSV Python متوافقة مع مكتبات معالجة البيانات الأخرى؟

ج: نعم، يمكن دمج مكتبة CSV Python بسهولة مع مكتبات معالجة البيانات الشائعة الأخرى في Python، مثل pandas أو numpy. يمكنك قراءة بيانات CSV في هذه المكتبات لمزيد من المعالجة أو تصدير البيانات من هذه المكتبات إلى تنسيق CSV باستخدام مكتبة CSV Python.

س8: هل تدعم مكتبة CSV Python أحرف Unicode؟

ج: نعم، تدعم مكتبة CSV Python أحرف Unicode. فهو يوفر خيارات لتحديد تشفير ملف CSV، مما يسمح لك بالعمل مع ملفات CSV التي تحتوي على أحرف من لغات أو مجموعات أحرف مختلفة.

س9: هل مكتبة CSV Python مشتركة بين الأنظمة الأساسية؟

ج: نعم، مكتبة CSV Python مشتركة بين الأنظمة الأساسية ويمكن استخدامها على أي نظام تشغيل يدعم Python.

س10: أين يمكنني العثور على مزيد من المعلومات والأمثلة حول كيفية استخدام مكتبة CSV Python؟

ج: يمكنك العثور على مزيد من المعلومات والأمثلة والوثائق حول كيفية استخدام مكتبة CSV Python في وثائق Python الرسمية أو من خلال البحث عبر الإنترنت عن البرامج التعليمية والأدلة المتعلقة تحديدًا بمعالجة CSV في Python.

الأسئلة المتكررة:

Q1: ما هي وحدة بايثون CSV؟

A: وحدة بايثون CSV هي وحدة تسمح لك بقراءة وكتابة ملفات CSV باستخدام لغة البرمجة بايثون.

Q2: كيف يمكنني تثبيت وحدة بايثون CSV؟

A: يمكنك تثبيت وحدة بايثون CSV باستخدام أداة إدارة الحزم pip عبر تنفيذ الأمر التالي: pip install csv

Q3: ما هي وظيفة وحدة بايثون CSV؟

A: تساعد وحدة بايثون CSV في قراءة وكتابة ملفات CSV بسهولة وفعالية.

Q4: ما هو تنسيق ملف CSV؟

A: تنسيق ملف CSV يعني Comma-Separated Values وهو تنسيق استخدم لتخزين البيانات المنظمة في صورة نصية، حيث يتم فصل القيم بفواصل (عادة فاصلة منقوطة).

Q5: كيف يمكنني قراءة ملف CSV باستخدام وحدة بايثون CSV؟

A: يمكنك قراءة ملف CSV باستخدام الدالة csv.reader() وتمريرها إلى ملف CSV المفتوح.

Q6: كيف يمكنني كتابة ملف CSV باستخدام وحدة بايثون CSV؟

A: يمكنك كتابة ملف CSV باستخدام الدالة csv.writer() وتمريرها إلى ملف CSV المفتوح.

Q7: هل يمكنني تحويل قائمة Python إلى ملف CSV باستخدام وحدة بايثون CSV؟

A: نعم، يمكنك تحويل قائمة Python إلى ملف CSV باستخدام وحدة بايثون CSV عن طريق استخدام الدالة csv.writer() وتمرير القائمة كمدخل.

Q8: هل يمكنني تحويل ملف CSV إلى قائمة Python باستخدام وحدة بايثون CSV؟

A: نعم، يمكنك تحويل ملف CSV إلى قائمة Python باستخدام وحدة بايثون CSV عن طريق استخدام الدالة csv.reader() وتمرير ملف CSV المفتوح.

Q9: هل يمكنني تحويل ملف Excel إلى ملف CSV باستخدام وحدة بايثون CSV؟

A: نعم، يمكنك تحويل ملف Excel إلى ملف CSV باستخدام وحدة بايثون CSV عن طريق قراءة ملف Excel باستخدام وحدة أخرى، ثم كتابة البيانات في ملف CSV بواسطة وحدة بايثون CSV.

Q10: هل يمكنني تحويل ملف CSV إلى ملف Excel باستخدام وحدة بايثون CSV؟

A: نعم، يمكنك تحويل ملف CSV إلى ملف Excel باستخدام وحدة بايثون CSV عن طريق قراءة ملف CSV باستخدام وحدة بايثون CSV، ثم كتابة البيانات في ملف Excel باستخدام وحدة أخرى.