写点什么

Awesome Python 资源列表维护工具

作者:qife
  • 2025-07-04
    福建
  • 本文字数:1102 字

    阅读完需:约 4 分钟

Awesome Python 资源列表维护工具

项目描述

功能特性

  • 智能内容分块:自动识别 Markdown 文档中的不同内容区块

  • 多级标题排序:支持按标题级别(如 #、##等)进行层级排序

  • 缩进聚类排序:根据缩进级别将相关内容聚类并排序

  • 保留文档结构:排序过程中保持原始文档的格式和结构不变

  • 自动化处理:一键执行完整的排序和整理流程

安装指南

此工具是纯 Python 脚本,无需复杂安装:


  1. 确保系统已安装 Python 3.x 环境

  2. 克隆或下载项目代码

  3. 直接运行脚本即可:


python sort.py
复制代码

使用说明

基本使用

python sort.py
复制代码


  1. 按缩进级别聚类内容并排序

  2. 按标题级别分层排序内容

  3. 保存排序后的结果回原文件

处理流程说明

工具包含两个主要排序阶段:


  1. 主排序流程(main 函数)

  2. 根据缩进级别将内容分块聚类

  3. 对每块内容按字母顺序排序

  4. 区块排序流程(sort_blocks 函数)

  5. 分离目录和内容区块

  6. 对各级标题下的内容进行排序

  7. 重新组合并保存结果

核心代码

主排序函数

def main():

read_me = read_me_file.readlines()
# 根据缩进级别聚类内容块 blocks = [] last_indent = None for line in read_me: s_line = line.lstrip() indent = len(line) - len(s_line)
if any([s_line.startswith(s) for s in ['* [', '- [']]): if indent == last_indent: blocks[-1].append(line) else: blocks.append([line]) last_indent = indent else: blocks.append([line]) last_indent = None
# 写入排序后的内容
blocks = [''.join(sorted(block, key=str.lower)) for block in blocks] sorted_file.write(''.join(blocks)) # 调用区块排序函数 sort_blocks()
复制代码

区块排序函数

def sort_blocks():

read_me = read_me_file.read() table_of_contents = ''.join(read_me.split('- - -')[0]) blocks = ''.join(read_me.split('- - -')[1]).split('\n# ') # 处理各区块内容 for i in range(len(blocks)): if i == 0: blocks[i] = blocks[i] + '\n' else: blocks[i] = '# ' + blocks[i] + '\n'
# 排序内部区块 inner_blocks = sorted(blocks[0].split('##')) for i in range(1, len(inner_blocks)): if inner_blocks[i][0] != '#': inner_blocks[i] = '##' + inner_blocks[i] inner_blocks = ''.join(inner_blocks)
# 组合最终内容并保存 blocks[0] = inner_blocks
复制代码


更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码


办公AI智能小助手


用户头像

qife

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
Awesome Python 资源列表维护工具_Python_qife_InfoQ写作社区