新增 转换手打答案至metadata功能
This commit is contained in:
parent
1f731ec788
commit
9796f2e648
|
|
@ -0,0 +1,26 @@
|
|||
filepath = "d:/temp/g1ans1.txt" #已输入答案的文件名
|
||||
metadatafilepath = "文本文件/metadata.txt" #metadata.txt所在位置
|
||||
|
||||
from database_tools import *
|
||||
|
||||
|
||||
data = ReadTextFile("d:/temp/g1ans1.txt")
|
||||
for regex in (r"\\section\{[\s\S]*?\}",r"\\begin\{enumerate\}",r"\\end\{enumerate\}",r"\\setcounter\{enumi\}\{[\s\S]*?\}",r"\\newpage"):
|
||||
data = re.sub(regex,"",data) #文件预处理
|
||||
plist = GenerateProblemListFromString(data)
|
||||
outputstr = "ans\n\n"
|
||||
for p in plist:
|
||||
id = re.findall(r"\((\d{6})\)",p[0])[0]
|
||||
ans = re.findall(r"\\textcolor{red}{\\textcolor{red}\{([\s\S]*?)\}\}$",p[0].strip())[0]
|
||||
if not ans == "暂无答案":
|
||||
outputstr += "%s\n%s\n\n"%(id,ans)
|
||||
|
||||
#测试是否均合法
|
||||
template = ReadTextFile("模板文件/题目编辑.txt")
|
||||
latexdata = StringSubstitute(r"<<[\s\S]*?待替换[\s\S]*?>>",template,[outputstr])
|
||||
SaveTextFile(latexdata,"临时文件/answer.tex")
|
||||
if XeLaTeXCompile("临时文件","answer.tex") == True:
|
||||
print("转换成功, 保存至 %s"%metadatafilepath)
|
||||
SaveTextFile(outputstr,metadatafilepath)
|
||||
else:
|
||||
print("转换失败, 请检查原文件 %s"%filepath)
|
||||
Reference in New Issue