当前位置: 首页 > news >正文

ASP.NET MVC架构 路由提取

工具箱界面

 

虎霸王

 

md.py代码

import os
import re
import tkinter as tk
from tkinter import messageboxprint("""_-' "'-,_-' | d$$b |_-'    | $$$$ |_-'       | Q$$P |            \033[1;41m=== MVC 路由提取工具 ===\033[0m_-'|         |      |_-'  _*         |      |_-' |_-"      __--''\    /_-'         __--'     __*--'-'       __-''    __--*__-"`
|    _--''   __--*"__-'`
|_--"  .--=`"__-||"
|      |  |\\\   ||
| .dUU |  | \\\ //
| UUUU | _|___//
| UUUU |  |
| UUUU |  |
| UUUU |  |
| UUUU |  |
| UUUU |  |
| UUP' |  |
|   ___^-"`""'
""")def generate_filename():filename = input(f"\033[91m[+] 请输入保存文件名: \033[00m").strip()if not filename:return "output.txt"if '.' not in filename:filename += '.txt'return filenamedef extract_controller_name(filename):if "Controller" in filename:base_name = os.path.basename(filename)controller_part = base_name.split("Controller")[0]return controller_part.strip()return Nonedef extract_action_methods(file_content):action_pattern = r'\bpublic\s+ActionResult\s+(\w+)\s*\('return re.findall(action_pattern, file_content)def process_controller_directory(directory_path):if not os.path.isdir(directory_path):messagebox.showerror("错误", "请输入有效的目录路径!")return Nonecontroller_files = []for root, _, files in os.walk(directory_path):for file in files:if "Controller" in file and file.endswith((".cs")):controller_files.append(os.path.join(root, file))if not controller_files:messagebox.showinfo("提示", "在指定目录中未找到包含Controller的文件!")return Noneresult_lines = []for file_path in controller_files:try:with open(file_path, 'r', encoding='utf-8') as f:content = f.read()controller_name = extract_controller_name(file_path)if not controller_name:continueaction_methods = extract_action_methods(content)for action in action_methods:result_lines.append(f"/{controller_name}/{action}")except Exception as e:print(f"处理文件 {file_path} 时出错: {str(e)}")continueif not result_lines:messagebox.showinfo("提示", "未从任何文件中提取到Action方法!")return Noneoutput_filename = generate_filename()output_path = os.path.join(os.getcwd(), output_filename)try:with open(output_path, 'w', encoding='utf-8') as f:f.write('\n'.join(result_lines))return output_pathexcept Exception as e:messagebox.showerror("错误", f"保存文件时出错: {str(e)}")return Nonedef main():# 使用input获取目录路径而不是GUI对话框directory_path = input(f"\033[91m[+] 请输入包含Controller文件的目录路径: \033[00m").strip()if not directory_path:print("已取消操作")returnoutput_path = process_controller_directory(directory_path)if output_path:print(f"\033[91m[+] 成功提取Action方法\033[00m")print(f"\033[91m[+] 保存路径: {output_path}\033[00m")else:print("处理过程中未生成输出文件")if __name__ == "__main__":main()

运行演示

 

1.txt

http://www.dtcms.com/a/266948.html

相关文章:

  • 第2期汽车模型数字工程沙龙,世冠科技分享汽车控制系统开发国产应用
  • 飞凌OK3568核心板与FPGA之间PCIe通信测试操作手册
  • FPGA实现40G网卡NIC,基于PCIE4C+40G/50G Ethernet subsystem架构,提供工程源码和技术支持
  • Day05: Python 中的并发和并行(1)
  • 堆的应用(建堆、堆排序、TOP-K问题)
  • 网安系列【3】之深入理解内容安全策略(CSP)
  • 迁移Ubuntu启动文件到另一块硬盘
  • ubuntu 18.04配置镜像源
  • 操作Choose Boot Java Run time for the IDE 导致AS重新安装后依然无法启动(已解决)
  • 考研408《计算机组成原理》复习笔记,第三章(3)——多模块存储器
  • Web前端:全选框的使用
  • Abase和ByteKV存储方案对比
  • 【C#】入门
  • tmux 左下角会话名显示不全的解决方法
  • SpringBoot-规划多模块目录结构
  • 项目介绍:Awesome System Prompts
  • 免费PDF处理软件,支持多种操作
  • 开源项目XYZ.ESB:数据库到数据库(DB->DB)集成
  • 系统架构师
  • Class5多层感知机的从零开始实现
  • Linux awk 命令
  • 浅谈 webshell 构造之如何获取恶意函数
  • chrome插件合集
  • 4 位量化 + FP8 混合精度:ERNIE-4.5-0.3B-Paddle本地部署,重新定义端侧推理效率
  • 【LUT技术专题】CLUT代码讲解
  • 写一个Ununtu C++ 程序,调用ffmpeg API, 来判断一个数字电影的视频文件mxf 是不是Jpeg2000?
  • MSPM0G3507学习笔记(一) 重置版:适配逐飞库的ti板环境配置
  • 服装零售企业跨区域运营难题破解方案
  • 深度学习笔记29-RNN实现阿尔茨海默病诊断(Pytorch)
  • 25年Java后端社招技术场景题!