الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

معالجة ملف نصي كبيري

بدأه ابو محمد2008 في 15 مارس 2012 · 5 رد · 540 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

اتمنى عليكم ايها الخبراء في بايثون ان تساعدوني فلدي ملف نصي كبير جدا و انا بجاجة الى معالجته لاستخراج بعض الحقول المهمة لوضعها في قاعدة بيانات، الملف يحتوي على عدد كبير حدا من السجلات المعقدة نوعا ما و اليكم مثال على سجل واحد الملف المرفق مع المخرج المطلوب، لقد تعبت من المحاولات الكثيرة التي قمت بها و لكن للاسف لم احصل على النتيجة التي اريدها.

ارجو من حضرتكم مساعدتي و اسال الله ان يجعله في ميزان حسناتكم

مع الاحترام و التقدير

اخوكم في الله ابومحمد

data.txt

#2

عليكم السلام

فضلا إرفق ملف يشمل سجلين من البيانات (ويفضل صيغة تلك الملفات كذلك إذا متوفرة لنعرف بداية كل سجل ونهايته) وملف آخر للمخرجات المطلوبة

عامة معالجة النصوص وإستخلاص البيانات منها يمكن فعل ذلك بسهولة بإستخدام التعابير المنتظمة او مكتبة pyparsing الرائعة

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

بارك الله فيك يا اخ احمد و جزاك الله كل خير

هيني ارفقت ملفين ملف الاول يحتوي على عينة من السدلات مع الملاحظة انو كل سجل بيبدا بالومز ====> , ;وكمان الملف الثاني يحتوي على شكل المخرج مع عينة من الملف للمقارنة

يارك الله فيك و يعطيك العافية

alarm.txt

output.txt

#4

طيب سهل إن شاء الله

اولا حسب حجم الملف سنحدد أسلوب القراءة هنا فرضت أنه يمكن الحصول على محتوياته مباشرة

>>> f=open("/tmp/alarm.txt")

مكتبة re تقدم لك دالة بإسم split تأخذ pattern ومحتوى لتقسمه

records=re.split("=+>", contents)

اصبح لديك مجموعة من السجلات في قائمة فتستطيع معالجة كل سجل منفردا

على مايبدو أنك تريد تحويل بعض العناصر المحتوية على مسافات إلى كومة فتستطيع بسهولة إستخدام replace وتستبدل المسافة ب ,

وبعض العناصر تريد إستخلاص قيمتها مثلا Severity تستطيع الحصول عليها كالتالي

>>> s=re.search("Severity:\s*?(?P<severityvalue>\w+)", rec1)
>>> s.groupdict('severityvalue')
{'severityvalue': 'Normal'}

ملاحظة: صيغة تخزين النواتج التي أرفقتها بعد المعالجة سيئة جدا

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 16 مارس 2012 في 16:02

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#5

السلام عليكم يا اخ احمد

بارك الله فيك على سرعة الرد و المعلومات القيمية التي زودتني بها

ولكن اذا في مجال تعطيني معلومات اكثر عن كيفية كتابة البرنامج كاملا

كيف نجمع هذه الخطوات في برنامج واحد

بارك الله فيك و جزاك الله كل خير و بركة

#6

السلام عليكم يا اخ احمد

الله يسعدك بس بدي اغلبك انك تساعدني و تبعثلي معلومات اكثر عن كيفية كتابة البرنامج عم بحاول اجمع الخطوات ولكن في مشاكل

الله يسعدك انك ترد على قبل ما يسكر السؤال

بارك الله فيك

مواضيع مشابهة