یک اسکریپت پایتون بنویس که یک فایل لاگ HTTP را بخواند، هِدرهای هر درخواست را استخراج کرده و آنها را بهصورت مرتب و خوانا نمایش دهد (قابلیت نمایش تنها هدرهای مشخصشده با فیلتر نیز داشته باشد).
0.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:37 0.0
برای حل: با استفاده از ماژولهای استاندارد پایتون مثل argparse برای دریافت مسیر فایل و آرگومان فیلتر، فایل را با with open بخوانید و با استفاده از الگوهای ساده (مثلاً re یا بررسی خطوطی که شکل "کلید: مقدار" دارند) هدرها را به یک دیکشنری تبدیل کنید؛ سپس با pprint یا logging آنها را چاپ کنید. برای دیباگ از logging.basicConfig و logging.debug جهت نمایش وضعیت پردازش استفاده کنید، خطاها را با try/except مدیریت کرده و برای فیلتر کردن هدرها نامها را به حروف کوچک تبدیل کنید تا مقایسهٔ ایمن انجام شود. این کار برای تست/دیباگ و استفاده در محیطهای DevOps مفید است (مثلاً اضافهکردن خروجی قابل پارس شدن یا سوییچ سطح لاگ).
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای کار با فایل لاگ بسیار بزرگ، از یک حلقه با yield/iterator استفاده کنید تا مصرف حافظه پایین باشد. هنگام استخراج هدرها، به folding خطوط و هدرهای چندخطی توجه کنید و بهتر است از تقسیم خط با ':' و استفاده از maxsplit=1 استفاده کنید. فیلترها را به lowercase تبدیل کرده و با یک مجموعه مقایسه کنید تا حساسیت به حروف کوچک حذف شود. برای نمایش منظم، کلیدها را مرتب چاپ کنید و از pprint یا json.dumps با indent استفاده کنید. برای دیباگ، از logging استفاده کنید و استثناها را با try/except ثبت کنید تا خطاهای فایل را بهخوبی دنبال کنید.
گزارش