67 lines
1.8 KiB
Python
67 lines
1.8 KiB
Python
import argparse
|
|
import re
|
|
|
|
def parse_args() -> argparse.Namespace:
|
|
parser = argparse.ArgumentParser(description="删除最近10条标题内容")
|
|
parser.add_argument(
|
|
"--input",
|
|
default="source/output/reports/2_up_analysis_full_auto.md",
|
|
help="输入报告路径",
|
|
)
|
|
parser.add_argument(
|
|
"--output",
|
|
help="输出报告路径(默认覆盖输入)",
|
|
)
|
|
return parser.parse_args()
|
|
|
|
def main():
|
|
args = parse_args()
|
|
input_file = args.input
|
|
output_file = args.output or input_file
|
|
|
|
with open(input_file, 'r', encoding='utf-8') as f:
|
|
content = f.read()
|
|
|
|
lines = content.split('\n')
|
|
new_lines = []
|
|
i = 0
|
|
while i < len(lines):
|
|
line = lines[i]
|
|
new_lines.append(line)
|
|
|
|
if line.startswith('## '):
|
|
i += 1
|
|
while i < len(lines):
|
|
curr = lines[i]
|
|
if curr.startswith('## '):
|
|
break
|
|
if curr.startswith('### '):
|
|
if '最近10条标题' in curr:
|
|
i += 1
|
|
while i < len(lines) and lines[i].startswith(' - '):
|
|
i += 1
|
|
continue
|
|
else:
|
|
break
|
|
if curr.startswith('- ') and not curr.startswith(' - '):
|
|
i += 1
|
|
continue
|
|
if curr.startswith(' - '):
|
|
i += 1
|
|
continue
|
|
new_lines.append(curr)
|
|
i += 1
|
|
else:
|
|
i += 1
|
|
|
|
result = '\n'.join(new_lines)
|
|
result = re.sub(r'\n{3,}', '\n\n', result)
|
|
|
|
with open(output_file, 'w', encoding='utf-8') as f:
|
|
f.write(result)
|
|
|
|
print(f'Done: {output_file}')
|
|
return 0
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main()) |