Awesome Python 资源列表维护工具
Awesome Python 资源列表维护工具
项目描述
功能特性
- 智能内容分块:自动识别Markdown文档中的不同内容区块
- 多级标题排序:支持按标题级别(如#、##等)进行层级排序
- 缩进聚类排序:根据缩进级别将相关内容聚类并排序
- 保留文档结构:排序过程中保持原始文档的格式和结构不变
- 自动化处理:一键执行完整的排序和整理流程
安装指南
此工具是纯Python脚本,无需复杂安装:
- 确保系统已安装Python 3.x环境
- 克隆或下载项目代码
- 直接运行脚本即可:
python sort.py
使用说明
基本使用
python sort.py
- 按缩进级别聚类内容并排序
- 按标题级别分层排序内容
- 保存排序后的结果回原文件
处理流程说明
工具包含两个主要排序阶段:
-
主排序流程(main函数):
- 根据缩进级别将内容分块聚类
- 对每块内容按字母顺序排序
-
区块排序流程(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智能小助手)
公众号二维码


浙公网安备 33010602011771号