Awesome Python 资源列表维护工具

Awesome Python 资源列表维护工具

项目描述

功能特性

  • 智能内容分块:自动识别Markdown文档中的不同内容区块
  • 多级标题排序:支持按标题级别(如#、##等)进行层级排序
  • 缩进聚类排序:根据缩进级别将相关内容聚类并排序
  • 保留文档结构:排序过程中保持原始文档的格式和结构不变
  • 自动化处理:一键执行完整的排序和整理流程

安装指南

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

  1. 确保系统已安装Python 3.x环境
  2. 克隆或下载项目代码
  3. 直接运行脚本即可:
python sort.py

使用说明

基本使用

python sort.py
  1. 按缩进级别聚类内容并排序
  2. 按标题级别分层排序内容
  3. 保存排序后的结果回原文件

处理流程说明

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

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

    • 根据缩进级别将内容分块聚类
    • 对每块内容按字母顺序排序
  2. 区块排序流程(sort_blocks函数)

    • 分离目录和内容区块
    • 对各级标题下的内容进行排序
    • 重新组合并保存结果

核心代码

主排序函数

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智能小助手)
公众号二维码

posted @ 2025-07-04 09:01  qife  阅读(6)  评论(0)    收藏  举报