البرمجة

تحليل ملفات XML باستخدام Python

تبدو المشكلة في الطريقة التي تقوم بها بتحديد مسار الملفات. عند استخدام os.listdir(path)، فإن الأسماء التي يرجعها هذا الدالة هي أسماء الملفات فقط داخل المجلد، وليس المسارات الكاملة إليها. لذا، عندما تحاول استخدام ET.parse(filename)، فإنه يحاول البحث عن الملفات باسمها فقط، وليس بالمسار الكامل.

لحل هذه المشكلة، يمكنك استخدام os.path.join() لدمج مسار المجلد مع اسم الملف أثناء التحليل. يمكنك تحديث الكود كما يلي:

python
import os import xml.etree.ElementTree as ET import pandas as pd path='C:\\Users\\manusharma\\Training' df = pd.DataFrame(columns=['text', 'type']) for filename in os.listdir(path): full_path = os.path.join(path, filename) tree = ET.parse(full_path) a = ET.tostring(tree.getroot(), encoding='utf-8', method='text') c = a.replace('\n', '') df = df.append({'text': c, 'type': 'abc'}, ignore_index=True) print(df.head())

هذا التعديل يجمع بين المسار الكامل للمجلد مع اسم الملف الذي تم العثور عليه، وبالتالي يمكن لـ ET.parse() إيجاد الملفات بنجاح وإجراء التحليل بشكل صحيح.

المزيد من المعلومات

بالطبع! في الكود السابق، قمت بتضمين استيرادات لبعض المكتبات الأساسية في Python التي تحتاج إليها لتنفيذ العملية:

  1. import os: هذه المكتبة توفر واجهات لنظام التشغيل، وتستخدم هنا للعمل مع مسارات الملفات.
  2. import xml.etree.ElementTree as ET: هذه المكتبة تساعد في تحليل ملفات XML، وتستخدم هنا لتحليل كل ملف XML.
  3. import pandas as pd: هذه المكتبة تستخدم للعمل مع البيانات في صورة جداول (DataFrames)، وتستخدم هنا لتخزين البيانات المحللة.

أيضا، يتم استخدام df = pd.DataFrame(columns=['text', 'type']) لإنشاء DataFrame فارغة قبل بدء الحلقة، حيث تكون الأعمدة text و type هي الأعمدة التي سيتم تخزين البيانات فيها.

وأخيرًا، print(df.head()) تُستخدم لطباعة أول خمس صفوف من DataFrame بعد إضافة البيانات.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر