البرمجة

قراءة ملف نصي وجمع الأرقام باستخدام بايثون

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

أولاً، قم بتحديد طريقة تقسيم الأرقام الموجودة في كل سطر من خلال فاصلة الفاصلة. يمكنك استخدام دالة split() كما قد قمت بذلك بالفعل، ولكن في هذه الحالة، قم بتحديد الفاصلة كوسيط.

python
line_array = line.split(',')

ثم، قم بتحويل الأرقام من صيغة النص إلى أرقام صحيحة باستخدام int().

python
num1, num2 = map(int, line_array)

الآن، قم بجمع الرقمين وتخزين الناتج في متغير جديد.

python
result = num1 + num2

بعد ذلك، قم بكتابة النتيجة في الملف الجديد. يمكنك استخدام write() لتحقيق ذلك.

python
write_file.write(f"{num1} + {num2} = {result}\n")

أخيرًا، لا تنسى إغلاق ملف الكتابة بعد الانتهاء.

python
write_file.close()

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

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

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

فيما يلي مزيد من النصائح والتحسينات:

  1. التحقق من صحة البيانات:
    قد يكون من المفيد إضافة تحقق من صحة البيانات قبل القيام بالعمليات الحسابية. يمكنك استخدام محاولة وإلغاء للتحقق من أن السطر يحتوي على رقمين صحيحين.

    python
    try: num1, num2 = map(int, line.split(',')) except ValueError: print(f"Invalid data in line: {line}") continue
  2. التحسين في فتح الملفات:
    يمكنك استخدام with statement عند فتح الملفات، وذلك لضمان أن الملفات تُغلق تلقائيًا بعد الانتهاء من العمل معها.

    python
    with open(relative_path, "r") as read_file, open(path_output, "w") as write_file: lines = read_file.readlines() for line in lines: # باقي الكود
  3. تحسين عملية الكتابة:
    بدلاً من استخدام write() لكتابة كل سطر على حدة، يمكنك استخدام قائمة لتجميع النتائج ومن ثم كتابتها دفعة واحدة.

    python
    results = [] for line in lines: try: num1, num2 = map(int, line.split(',')) result = num1 + num2 results.append(f"{num1} + {num2} = {result}\n") except ValueError: print(f"Invalid data in line: {line}") write_file.writelines(results)

    هذا يقلل من عدد عمليات الكتابة ويحسن أداء البرنامج.

  4. تجنب الخروج التلقائي:
    قد تكون فكرة استخدام sys.exit() للخروج في حالة عدم وجود الملف غير ملائمة. يمكنك ببساطة إضافة رسالة تعبيرية بدلاً من الخروج، والسماح للبرنامج بالاستمرار.

    python
    if not os.path.exists(relative_path): print("File not found. Please provide a valid file path.")

    هذا يتيح للمستخدم إعادة المحاولة أو التصدي للمشكلة بشكل أفضل.

شاهد أيضاً
إغلاق
زر الذهاب إلى الأعلى