import re with open(r'D:\Code\Python\followlist\source\output\reports\up_analysis_full_auto.md', 'r', encoding='utf-8') as f: content = f.read() # Pattern: Remove any bullet lines between '## N. xxx' section header and the next '### ' section # Match: '## N.' followed by any content (not starting with '- '), then multiple ' - ' lines, then stop at '### ' # Use a pattern that captures from '## ' to the next '### ' # More specifically: match the block from '## N.' until the next '### ' that is NOT '### 最近10条标题' # and remove any lines starting with ' - ' in between lines = content.split('\n') new_lines = [] i = 0 while i < len(lines): line = lines[i] new_lines.append(line) # If we just added a section header '## N.' if line.startswith('## '): i += 1 # Skip lines until we hit either '### 最近10条标题' or another section marker while i < len(lines): curr = lines[i] if curr.startswith('## '): break if curr.startswith('### '): if '最近10条标题' in curr: # Skip this title section and its bullets i += 1 # skip '### 最近10条标题' while i < len(lines) and lines[i].startswith(' - '): i += 1 continue else: # This is another section like ### AI分析 - keep it break # Skip lines that are just basic info (主页, 标签, mid) if curr.startswith('- ') and not curr.startswith(' - '): i += 1 continue # Skip actual bullet lines (the orphaned ones) if curr.startswith(' - '): i += 1 continue new_lines.append(curr) i += 1 else: i += 1 result = '\n'.join(new_lines) # Clean multiple blank lines result = re.sub(r'\n{3,}', '\n\n', result) with open(r'D:\Code\Python\followlist\source\output\reports\up_analysis_full_auto.md', 'w', encoding='utf-8') as f: f.write(result) print('Done')