تطبيقات
تطبيق معمارية الطبقات الثلاث
وهذا مثال لبرنامج يقرأ الملف المعطى فيعالجه ثم نتيجة المعالجة بنفس اسم الملف متبوعًا بكلمة _processed
:
from pathlib import Path
import typer
= typer.Typer()
app
@app.command()
def hello(name: str):
print('Hello', name)
@app.command()
def uppercase(file_path: str):
# قراءة الملف
= Path(file_path).resolve()
p with open(file=p, mode='r') as file:
= file.read()
content
# معالجة النص
= content.upper()
content
# كتابة النتيجة
= p.with_stem(f'{p.stem}_processed')
p with open(file=p, mode='w') as file:
file.write(content)
if __name__ == "__main__":
app()
مثال لتشغيل البرنامج:
python main.py uppercase ./relative/path/to/file.txt
فإن كان الملف موجودًا فستلاحظ وجود ملف جديد باسم: file_processed.txt
.
وفي هذا المثال رأينا الطبقات الثلاث جميعًا:
- طبقة العرض: يتكفل
typer
بطبقة العرض؛ وهي الكيفية التي يستخدم بها المستفيد البرنامج (وهي سطر الأوامر) - طبقة المنطق: وتتمثل في السطر
content = content.upper()
- طبقة البيانات: وهي في الأول والأخير: قراءة الملف المحدد في المدخلات ثم كتابة النتيجة في ملف