{ "cells": [ { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 解答题 1\n", "2 解答题 1\n", "3 解答题 1\n", "4 解答题 1\n", "5 解答题 1\n", "6 解答题 1\n", "7 解答题 1\n", "8 解答题 3\n", "9 解答题 2\n", "10 填空题 1\n", "11 解答题 4\n", "12 填空题 4\n", "13 解答题 1\n", "14 填空题 1\n", "15 选择题 1\n", "16 解答题 2\n", "17 解答题 1\n", "1 解答题 4\n", "2 解答题 1\n", "3 解答题 1\n", "4 选择题 1\n", "5 解答题 2\n", "6 填空题 1\n", "7 填空题 1\n", "8 填空题 1\n", "9 解答题 3\n", "10 解答题 2\n", "11 填空题 3\n" ] } ], "source": [ "import os,re\n", "#修改文件名\n", "filename = r\"C:\\Users\\Weiye\\Documents\\wwy sync\\23届\\第一轮复习讲义\\21_空间直线与平面的位置关系.tex\"\n", "# filename = r\"C:\\Users\\Wang Weiye\\Documents\\wwy sync\\23届\\上学期周末卷\\国庆卷.tex\"\n", "outputfile = \"临时文件/题目状态.txt\"\n", "\n", "outputstr = \"\"\n", "with open(filename,\"r\",encoding = \"utf8\") as f:\n", " data = f.read()\n", "data = re.sub(r\"\\\\begin\\{center\\}[\\s\\S]*?\\\\end\\{center\\}\",\"\",data)\n", "sections = re.findall(r\"\\\\begin\\{enumerate\\}([\\s\\S]*?\\\\end\\{enumerate\\})\",data)\n", "for sec in sections:\n", " sec = sec.replace(\"\\\\item\",\"\\\\enditem\\\\item\").replace(\"\\\\end{enumerate}\",\"\\\\enditem\")\n", " problems = re.findall(r\"\\\\item([\\s\\S]*?)\\\\enditem\",sec)\n", " count = 0\n", " for p in problems:\n", " count += 1\n", " if \"\\\\bracket\" in p:\n", " genre = \"选择题\"\n", " parts = len(re.findall(r\"\\\\bracket\",p))\n", " elif \"\\\\blank\" in p:\n", " genre = \"填空题\"\n", " parts = len(re.findall(r\"\\\\blank\",p))\n", " else:\n", " genre = \"解答题\"\n", " parts = len(re.findall(r\"\\([\\d]{1,2}\\)\",p))\n", " if parts == 0:\n", " parts = 1\n", " print(count,genre,parts)\n", " outputstr += str(count) + \"-\" + genre + \"-\" + str(parts) + \"\\n\"\n", " outputstr += \"\\n\"\n", "with open(outputfile,\"w\",encoding = \"utf8\") as f:\n", " f.write(outputstr)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3.8.8 ('base')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.8" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "d311ffef239beb3b8f3764271728f3972d7b090c974f8e972fcdeedf230299ac" } } }, "nbformat": 4, "nbformat_minor": 2 }