یک اسکریپت پایتون بنویسید که با استفاده از 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 برای اتوماسیون پردازش دایرکتوری‌ها بهره ببرید؛ همچنین مراقب کامنت‌ها باشید که ممکن است نیاز به فیلتر ساده قبل از جستجو داشته باشند.

توسط پژوهشگر در 201 روز قبل ساعت 03:46
دسته بندی ها: Python Python for beginner
sara در 201 روز قبل ساعت 05:17

نکته مهم این است که قبل از جستجو با الگوهای re، کامنت‌ها و رشته‌ها را از سورس جدا کنید تا از استخراج نام‌های داخل کامنت‌ها یا رشته‌ها جلوگیری شود. از الگوهای raw string استفاده کنید و با re.compile و پرچم‌های مناسب مانند re.MULTILINE کار کنید؛ برای include می‌توانید دو الگوی جداگانه برای نقل قولی‌ها و آنگل‌های <...> بنویسید و نام فایل را در گروه کپچر بگیرید. برای pragma هم می‌توانید از الگوی r'^\s*#\s*pragma\s+(.+)' استفاده کنید. اگر می‌خواهید روی چند فایل کار کنید، از os.walk استفاده کنید تا پردازش دایرکتوری‌ها را خودکار کنید و خروجی را در یک لیست یا فایل گزارش دهید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری