当前位置:首页>考研真题>大学生英语试卷和词书单词提取、处理与覆盖率统计工具

大学生英语试卷和词书单词提取、处理与覆盖率统计工具

  • 2026-04-20 20:51:41
大学生英语试卷和词书单词提取、处理与覆盖率统计工具

提取真题试卷中的单词,与自己背的词书做覆盖率统计,对比不同词书之前的差异。

来自我的GitHub

Word-Tool

在GitHub中可以获取可运行文件。

一个简单的Python小脚本,可以从PDF, Word和txt文件中提取单词,进行切分、排序、去重、词形还原(不灵敏)、有效性校验,并可以将其与另一份文件进行词汇覆盖率计算分析。

仅支持可复制文本的PDF,扫描扁平PDF无法提取内容,需先转换为可复制文本的PDF。

还提供了牛津3000、牛津5000(美国版)和CET四六级考纲单词清单。

核心功能

支持两个核心功能:

1.切词:

读取.txt / .pdf / .docx文档(适配UTF-8 / GBK)

提取纯英文单词,过滤标点、数字、中文等

词性还原

去重排序

通过权威英语词典过滤无效词汇

2.覆盖率分析:

对比自定义词典与目标词汇表,计算覆盖率

导出报告和未覆盖单词清单

快速开始

1.确保Python 3环境

2.工具需要使用以下库(将自动检验),需要安装:

pip install pdfplumber python-docx nltk

3.运行(工具会自动下载所需NTLK资源,若失败可手动下载)

import osimport reimport shutilimport subprocessimport sysfrom pathlib import Pathdef check_dependencies():    """检查必要的第三方库是否安装"""    required_libs = {        'pdfplumber''pdfplumber',        'docx''python-docx'    }    missing_libs = []    for lib, pkg in required_libs.items():        try:            __import__(lib)        except ImportError:            missing_libs.append(pkg)    if missing_libs:        print(f"❌ 缺少必要的库,请先运行以下命令安装:")        print(f"   pip install {' '.join(missing_libs)}")        sys.exit(1)# 检查依赖后再导入check_dependencies()import pdfplumberfrom docx import Documentimport nltkfrom nltk.stem import WordNetLemmatizerfrom nltk.corpus import wordnet, words# ================= 核心工具模块 =================def init_nltk_resources():    """静默初始化NLTK资源"""    resources = [        ('corpora/wordnet''wordnet'),        ('taggers/averaged_perceptron_tagger_eng''averaged_perceptron_tagger_eng'),        ('corpora/omw-1.4''omw-1.4'),        ('corpora/words''words')    ]    for path, name in resources:        try:            nltk.data.find(path)        except LookupError:            print(f"⏳ 正在下载 NLTK 资源: {name}...")            nltk.download(name, quiet=True)def get_wordnet_pos(nltk_tag):    """NLTK词性转WordNet词性"""    if nltk_tag.startswith('J'): return wordnet.ADJ    elif nltk_tag.startswith('V'): return wordnet.VERB    elif nltk_tag.startswith('N'): return wordnet.NOUN    elif nltk_tag.startswith('R'): return wordnet.ADV    elsereturn wordnet.NOUN# ================= 文件读取模块 =================def read_txt(file_path):    """读取TXT,自动适配编码"""    try:        with open(file_path, 'r', encoding='utf-8'as f: return f.read()    except UnicodeDecodeError:        with open(file_path, 'r', encoding='gbk'as f: return f.read()def read_pdf(file_path):    """读取PDF文本"""    text_content = []    with pdfplumber.open(file_path) as pdf:        for page in pdf.pages:            text = page.extract_text()            if text: text_content.append(text)    return '\n'.join(text_content)def read_docx(file_path):    """读取Word文档"""    doc = Document(file_path)    return '\n'.join([para.text for para in doc.paragraphs])def load_file_text(file_path):    """根据扩展名分发读取器"""    ext = Path(file_path).suffix.lower()    if ext == '.txt'return read_txt(file_path)    elif ext == '.pdf'return read_pdf(file_path)    elif ext == '.docx'return read_docx(file_path)    elseraise ValueError(f"不支持的文件格式: {ext}")# ================= 业务逻辑模块 =================def extract_and_lemmatize(text):    """流程:提取单词 -> 词性标注 -> 词形还原 -> 去重排序"""    raw_words = re.findall(r'[a-zA-Z]+', text.lower())    pos_tags = nltk.pos_tag(raw_words)    lemmatizer = WordNetLemmatizer()    lemmatized = [        lemmatizer.lemmatize(word, pos=get_wordnet_pos(tag))        for word, tag in pos_tags    ]    return sorted(set(lemmatized))def filter_valid_words(word_list):    """流程:基于NLTK词库过滤无效单词"""    english_dict = set(w.lower() for w in words.words())    valid = [w for w in word_list if w.lower() in english_dict]    invalid = [w for w in word_list if w.lower() not in english_dict]    return valid, invaliddef calculate_coverage_rate(dict_path, target_path):    """计算覆盖率并返回统计数据"""    def read_list(fp):        with open(fp, 'r', encoding='utf-8'as f:            return [line.strip() for line in f if line.strip()]    dict_set = set(read_list(dict_path))    target_list = read_list(target_path)    covered = [w for w in target_list if w in dict_set]    uncovered = [w for w in target_list if w not in dict_set]    return {        "dict_count"len(dict_set),        "target_count"len(target_list),        "covered_count"len(covered),        "uncovered_count"len(uncovered),        "rate": (len(covered) / len(target_list) * 100if target_list else 0,        "uncovered_list": uncovered    }# ================= 工作区管理 =================class Workspace:    def __init__(self, source_file):        self.source_path = Path(source_file)        self.root_dir = self.source_path.parent / "WordTool_Workspace"        self.source_dir = self.root_dir / "0_Source"        self.result_dir = self.root_dir / "1_Result"        self._init_dirs()        self._copy_source()    def _init_dirs(self):        self.root_dir.mkdir(exist_ok=True)        self.source_dir.mkdir(exist_ok=True)        self.result_dir.mkdir(exist_ok=True)    def _copy_source(self):        shutil.copy2(self.source_path, self.source_dir / self.source_path.name)    def save_result(self, filename, content_list):        """保存结果文件到工作区"""        file_path = self.result_dir / filename        with open(file_path, 'w', encoding='utf-8'as f:            for line in content_list:                f.write(f"{line}\n")        return file_path    def open_in_explorer(self):        """跨平台打开结果文件夹"""        if sys.platform == 'win32':            os.startfile(self.result_dir)        elif sys.platform == 'darwin':            subprocess.Popen(['open'self.result_dir])        else:            subprocess.Popen(['xdg-open'self.result_dir])# ================= 交互界面模块 =================def prompt_file_path(desc="文件"):    """提示输入文件路径"""    while True:        path = input(f"请拖入{desc}或输入路径: ").strip().strip('"').strip("'")        if os.path.isfile(path): return path        print("❌ 文件不存在,请重试。")def prompt_yes_no(question, default="y"):    """Yes/No询问"""    hint = "[Y/n]" if default.lower() == "y" else "[y/N]"    while True:        choice = input(f"{question}{hint}: ").strip().lower()        if not choice: return default.lower() == "y"        if choice in ['y''yes']: return True        if choice in ['n''no']: return False        print("请输入 y 或 n。")def run_text_processing():    """流程:文本处理"""    print("\n" + "="*40)    print("📝 板块一:文本处理")    print("="*40)    f_path = prompt_file_path("源文件(.txt/.pdf/.docx)")    print("\n处理选项:")    do_extract = prompt_yes_no("1. 执行选词(提取/还原/去重)?""y")    do_filter = prompt_yes_no("2. 执行词典筛词(验证有效性)?""y")    if not do_extract and not do_filter:        print("⚠️ 未选择任何操作,返回。")        return    try:        ws = Workspace(f_path)        text = load_file_text(ws.source_dir / Path(f_path).name)        current_data = None        if do_extract:            print("⏳ 正在进行词形还原与去重...")            current_data = extract_and_lemmatize(text)            ws.save_result("1_Lemmatized_Words.txt", current_data)            print(f"✅ 选词完成,共 {len(current_data)} 个词。")        if do_filter:            print("⏳ 正在进行词典校验...")            if current_data is None:                # 如果没选词,只做简单提取                current_data = sorted(set(re.findall(r'[a-zA-Z]+', text.lower())))            valid, invalid = filter_valid_words(current_data)            ws.save_result("2_Valid_Words.txt", valid)            ws.save_result("3_Invalid_Words.txt", invalid)            print(f"✅ 筛词完成:有效 {len(valid)},无效 {len(invalid)}。")        print("\n🎉 处理完毕!正在打开结果文件夹...")        ws.open_in_explorer()    except Exception as e:        print(f"❌ 发生错误: {e}")def run_coverage_analysis():    """流程:覆盖率分析"""    print("\n" + "="*40)    print("📊 板块二:覆盖率计算")    print("="*40)    print("> 请准备两个TXT文件,每行一个单词。")    dict_path = prompt_file_path("【词典】文件")    target_path = prompt_file_path("【目标】文件")    try:        ws = Workspace(target_path)        # 复制词典到工作区        shutil.copy2(dict_path, ws.source_dir / "Dictionary.txt")        print("⏳ 正在计算覆盖率...")        stats = calculate_coverage_rate(dict_path, target_path)        # 保存报告        report = [            "="*30,            "📊 覆盖率统计报告",            "="*30,            f"词典词数: {stats['dict_count']}",            f"目标词数: {stats['target_count']}",            f"覆盖词数: {stats['covered_count']}",            f"未覆盖词数: {stats['uncovered_count']}",            f"覆盖率: {stats['rate']:.2f}%",            "="*30        ]        ws.save_result("Coverage_Report.txt", report)        ws.save_result("Uncovered_Words.txt", stats['uncovered_list'])        print("\n" + "\n".join(report))        print("\n🎉 统计完毕!正在打开结果文件夹...")        ws.open_in_explorer()    except Exception as e:        print(f"❌ 发生错误: {e}")def main():    init_nltk_resources()    while True:        print("\n" + "="*40)        print("英语单词处理工具箱")        print("="*40)        print("1. 📝 文本处理 (选词/筛词)")        print("2. 📊 覆盖率计算")        print("0. Exit")        print("-" * 40)        choice = input("请选择功能 [0-2]: ").strip()        if choice == '1': run_text_processing()        elif choice == '2': run_coverage_analysis()        elif choice == '0'break        elseprint("无效输入,请重试。")if __name__ == "__main__":    main()
#工作区:WordTool_Workspace/├─ 0_Source/        # 存放原始文件(自动备份)└─ 1_Result/        # 所有处理结果(自动打开)

文本处理输出

文件名说明
1_Lemmatized_Words.txt词形还原+去重后的单词列表
2_Valid_Words.txt经词典校验的有效英文单词
3_Invalid_Words.txt无效单词

覆盖率分析输出

文件名说明
Coverage_Report.txt覆盖率统计报告(总词数/覆盖数/百分比)
Uncovered_Words.txt未被词典覆盖的单词清单

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-20 22:38:40 HTTP/2.0 GET : https://www.sjds.net/a/481059.html
  2. 运行时间 : 0.090429s [ 吞吐率:11.06req/s ] 内存消耗:4,416.21kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=164c44978b79677994e4e73756917386
  1. /yingpanguazai/ssd/ssd1/www/www.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/www.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/www.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/www.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/www.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/www.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/www.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/www.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/www.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/www.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/www.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/www.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/www.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/www.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/www.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/www.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/www.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/www.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/www.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/www.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/www.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/www.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/www.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/www.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/www.sjds.net/runtime/temp/5febe16c9207553ef9b4c4406f7af920.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/www.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000479s ] mysql:host=127.0.0.1;port=3306;dbname=www_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000619s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.002761s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000308s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000615s ]
  6. SELECT * FROM `set` [ RunTime:0.000330s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000632s ]
  8. SELECT * FROM `article` WHERE `id` = 481059 LIMIT 1 [ RunTime:0.001484s ]
  9. UPDATE `article` SET `lasttime` = 1776695920 WHERE `id` = 481059 [ RunTime:0.003801s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000225s ]
  11. SELECT * FROM `article` WHERE `id` < 481059 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000426s ]
  12. SELECT * FROM `article` WHERE `id` > 481059 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000368s ]
  13. SELECT * FROM `article` WHERE `id` < 481059 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000947s ]
  14. SELECT * FROM `article` WHERE `id` < 481059 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000544s ]
  15. SELECT * FROM `article` WHERE `id` < 481059 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001498s ]
0.092098s