跳到主要内容

代码片段-牛津3000

import re
import sys

def groupByLevel(path):
patterns = [f"{chr(x)}{y}" for x in range(ord('A'), ord('D')) for y in range(1,3)]
results = results = {key: set() for key in patterns}

with open(path, "r") as file:
for line in file:
r = re.match(r"^- \[[x ]\] (.*)", line)
if r:
line = r.groups()[0]
for pattern in patterns:
if line.find(" "+pattern) != -1:
results[pattern].add(line)

with open("groupByLevel.txt", "w") as outfile:
sum = 0
for key in results:
length = len(results[key])
sum += length
print(key, length)
outfile.write("".join(["\n", "## ", key, "\n\n"]))
for value in sorted(results[key]):
outfile.write("".join(["- [ ] ", value]))
print("sum", sum, "\n")

def groupByPart(path):
patterns = [
r'(?<=\s|/)n\.',
r'(?<=\s|/)v\.',
r'(?<=\s|/)adj\.',
r'(?<=\s|/)adv\.',
r'(?<=\s|/)prep\.',
r'(?<=\s|/)conj\.',
r'(?<=\s|/)pron\.',
r'(?<=\s|/)det\.',
r'(?<=\s|/)number',
]
default_pattern = "*"
results = {key: set() for key in patterns}
results[default_pattern] = set()

with open(path, "r") as file:
for line in file:
r = re.match(r"^- \[[x ]\] (.*)", line)
if r:
line = r.groups()[0]
matched = False
for pattern in patterns:
if re.search(pattern, line):
matched = True
results[pattern].add(line)
if not matched:
print(line)
results[default_pattern].add(line)

with open("groupByPart.txt", "w") as outfile:
sum = 0
for key in results:
length = len(results[key])
sum += length
key2 = key.split(")")[1].replace('\\', '') if key != default_pattern else key
print(key2, length)
outfile.write("".join(["\n", "## ", key2, "\n\n"]))
for value in sorted(results[key]):
outfile.write("".join(["- [ ] ", value]))
print("sum", sum, "\n")

def filterChecked(path):
res = set()
with open(path, "r") as file:
for line in file:
r = re.match(r"^- \[x\] (\w+)(.*)", line)
if r:
line = r.groups()[0].strip()
res.add(line)
for line in sorted(res):
print(line)

if __name__ == "__main__":
filepath = sys.argv[1]
groupByPart(filepath)
groupByLevel(filepath)
#filterChecked(filepath)