This repository has been archived on 2024-06-23. You can view files and clone it, but cannot push or open issues or pull requests.
mathdeptv2/文本处理工具/单选变为多选.py

52 lines
1.6 KiB
Python

import os,re
import win32clipboard as wc
import win32con
# 获取剪切板内容
def getCopy():
wc.OpenClipboard()
t = wc.GetClipboardData(win32con.CF_UNICODETEXT)
wc.CloseClipboard()
return t
# 写入剪切板内容
def setCopy(str):
wc.OpenClipboard()
wc.EmptyClipboard()
wc.SetClipboardData(win32con.CF_UNICODETEXT, str)
wc.CloseClipboard()
def choicetoblankfilling(data):
choiceslist = re.findall(r"(\\(?:two|four|one)ch[\s\S]*?)(?:\n[\s]*\\item|$)",data)
for rawchoice in choiceslist:
leftcount = 0
rightcount = 0
choicestring = rawchoice
contentlist = [""]
while len(choicestring) > 0:
char = choicestring[0]
if char == "{":
leftcount += 1
if char == "}":
rightcount += 1
if leftcount > rightcount:
contentlist[-1]+=char
if leftcount == rightcount and contentlist[-1] != "":
contentlist[-1] += "}"
contentlist.append("")
choicestring = choicestring[1:]
contentlist = [c[1:-1] for c in contentlist if c.strip()!=""]
repstring = ""
for t in range(len(contentlist)):
repstring += r"\textcircled{"+str(t+1)+"} "+contentlist[t]+"; "
repstring= repstring[:-2]+"."
data = data.replace(rawchoice,repstring)
data = re.sub(r"bracket\{\d*?\}\.*",r"blank{50}.\\\\",data)
return data
data = getCopy()
modified_data = choicetoblankfilling(data)
setCopy(modified_data)
with open("临时文件/outputfile.txt","w",encoding = "utf8") as f:
f.write(modified_data)