لقد قمت بتبدأ في رحلة برمجية مثيرة من خلال تحدي تقني يتعلق بقراءة البيانات من ملف نصي وإجراء عمليات حسابية عليها، ثم كتابة النتائج في ملف نصي جديد. لنواصل هذه الرحلة، دعني أساعدك في تطوير الكود الخاص بك وتحقيق الأهداف التي وضعتها.
أولاً، قم بتحديد طريقة تقسيم الأرقام الموجودة في كل سطر من خلال فاصلة الفاصلة. يمكنك استخدام دالة split()
كما قد قمت بذلك بالفعل، ولكن في هذه الحالة، قم بتحديد الفاصلة كوسيط.
pythonline_array = line.split(',')
ثم، قم بتحويل الأرقام من صيغة النص إلى أرقام صحيحة باستخدام int()
.
pythonnum1, num2 = map(int, line_array)
الآن، قم بجمع الرقمين وتخزين الناتج في متغير جديد.
pythonresult = num1 + num2
بعد ذلك، قم بكتابة النتيجة في الملف الجديد. يمكنك استخدام write()
لتحقيق ذلك.
pythonwrite_file.write(f"{num1} + {num2} = {result}\n")
أخيرًا، لا تنسى إغلاق ملف الكتابة بعد الانتهاء.
pythonwrite_file.close()
الآن، يمكنك دمج هذه الخطوات في الكود الخاص بك لتحقيق المهمة بشكل كامل. يمكنك أيضاً إضافة مزيد من التحكم بالأخطاء وتحسينات أخرى حسب احتياجاتك. بالتأكيد، هذه الخطوات ستساعدك في فهم كيفية تحقيق المهمة المطلوبة بلغة البرمجة بايثون.
المزيد من المعلومات
بالطبع، دعونا نكمل الرحلة التقنية الخاصة بك ونضيف المزيد من التفاصيل والتحسينات لجعل الكود أكثر استدامة وفعالية.
فيما يلي مزيد من النصائح والتحسينات:
-
التحقق من صحة البيانات:
قد يكون من المفيد إضافة تحقق من صحة البيانات قبل القيام بالعمليات الحسابية. يمكنك استخدام محاولة وإلغاء للتحقق من أن السطر يحتوي على رقمين صحيحين.pythontry: num1, num2 = map(int, line.split(',')) except ValueError: print(f"Invalid data in line: {line}") continue
-
التحسين في فتح الملفات:
يمكنك استخدامwith
statement عند فتح الملفات، وذلك لضمان أن الملفات تُغلق تلقائيًا بعد الانتهاء من العمل معها.pythonwith open(relative_path, "r") as read_file, open(path_output, "w") as write_file: lines = read_file.readlines() for line in lines: # باقي الكود
-
تحسين عملية الكتابة:
بدلاً من استخدامwrite()
لكتابة كل سطر على حدة، يمكنك استخدام قائمة لتجميع النتائج ومن ثم كتابتها دفعة واحدة.pythonresults = [] 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)
هذا يقلل من عدد عمليات الكتابة ويحسن أداء البرنامج.
-
تجنب الخروج التلقائي:
قد تكون فكرة استخدامsys.exit()
للخروج في حالة عدم وجود الملف غير ملائمة. يمكنك ببساطة إضافة رسالة تعبيرية بدلاً من الخروج، والسماح للبرنامج بالاستمرار.pythonif not os.path.exists(relative_path): print("File not found. Please provide a valid file path.")
هذا يتيح للمستخدم إعادة المحاولة أو التصدي للمشكلة بشكل أفضل.