یک اسکریپت پایتون بنویسید که با استفاده از re.compile هدرها و دستورات پیشپردازنده مانند #include و #pragma را از فایلهای سورس C/C++ استخراج کند و نام فایل هدر یا متن pragma را بهصورت لیست بازگرداند.
5.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:46 0.0
برای حل این مسئله از ماژول re در پایتون استفاده کنید و الگوهای مناسب را با re.compile بسازید (مثلاً r'^\s*#\s*include\s+["]' و r'^\s*#\s*pragma\s+(.+)' با flag = re.MULTILINE). فایل ورودی را با file I/O بخوانید، سپس با findall یا finditer مقادیر گروههای کپچر شده را استخراج کنید. نکتهها: از raw string برای الگوها استفاده کنید، الگوی خود را روی چند خط تست کنید، و اگر میخواهید روی چند فایل کار کنید از os.walk برای اتوماسیون پردازش دایرکتوریها بهره ببرید؛ همچنین مراقب کامنتها باشید که ممکن است نیاز به فیلتر ساده قبل از جستجو داشته باشند.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته مهم این است که قبل از جستجو با الگوهای re، کامنتها و رشتهها را از سورس جدا کنید تا از استخراج نامهای داخل کامنتها یا رشتهها جلوگیری شود. از الگوهای raw string استفاده کنید و با re.compile و پرچمهای مناسب مانند re.MULTILINE کار کنید؛ برای include میتوانید دو الگوی جداگانه برای نقل قولیها و آنگلهای <...> بنویسید و نام فایل را در گروه کپچر بگیرید. برای pragma هم میتوانید از الگوی r'^\s*#\s*pragma\s+(.+)' استفاده کنید. اگر میخواهید روی چند فایل کار کنید، از os.walk استفاده کنید تا پردازش دایرکتوریها را خودکار کنید و خروجی را در یک لیست یا فایل گزارش دهید.
گزارش