10.25 脚本 整理2024全年 GITHUB每周热门项目

需求 : 整理2024全年GITHUB热门项目

功能

  1. 一次性 bash 内嵌 Python3 脚本:

  2. 遍历 /.../github-weekly-rank-main/2024/01/ 下全部 *.md

3.把每个文件里的「排名表格」洗成"一 行一个项目"极简清单

4.调用 Moonshot API 生成「中文名+人话说明」

5.结果保存为 .txt (如 2024-01-A GITHUB热门项目#

脚本 (^..^)ノ (^..^)ノ (^._.^)ノ

复制整段(含开头 python3 -x)到终端回车即可跑,无需落盘任何文件

python3 -x <<'EOF'

---------- 唯一需要改的 ----------

API_KEY = "sk-哥们你自己的要是🔑🔑🔑"

ROOT_DIR = "/storage/emulated/0/Android/LLS_2025/Xmind/临时/github-weekly-rank-main/2024"

----------------------------------

import re, pathlib, requests, os, sys, string

ROOT_DIR = pathlib.Path(ROOT_DIR)

url = "https://api.moonshot.cn/v1/chat/completions"

hdr = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

def call_kimi(text: str) -> str:

prompt = f"""

下面是一段GitHub每周飙升榜Markdown表格,请清洗并按以下严格格式输出:

  1. 每项目压缩成两行:

第一行:序号. 中文一句话名(英文原名)

第二行: 项目地址 , 人话一句话说明(20~40字)

  1. 去掉图标、增长箭头、图片;序号保留;中文名优先。

  2. 不输出任何额外文字,不总结,不空行分段。

{text}

"""

payload = {

"model": "kimi-k2-turbo-preview",

"messages": [{"role": "user", "content": prompt.strip()}],

"temperature": 0.3,

"max_tokens": 4000

}

r = requests.post(url, headers=hdr, json=payload, timeout=120)

r.raise_for_status()

return r.json()["choices"][0]["message"]["content"].strip()

for month_dir in sorted(ROOT_DIR.iterdir()): # 2024/01 2024/02 ...

if not month_dir.is_dir():

continue

year_month = month_dir.name # "01" "02" ...

每月重新从 A 开始

for idx, md_file in enumerate(sorted(month_dir.glob("*.md"))):

letter = string.ascii_uppercase[idx % 26] # A B C ... 每轮循环

save_name = f"2024-{year_month}-{letter} github热门项目.txt"

txt_file = md_file.with_name(save_name) # 同目录换名

if txt_file.exists():

continue

content = md_file.read_text(encoding="utf-8")

table = "\n".join(re.findall(r"^\|.*\|$", content, flags=re.M))

if not table:

print(f"[SKIP] 无表格 {md_file}")

continue

print(f"[DO] {md_file} → {txt_file.name}")

try:

cleaned = call_kimi(table)

txt_file.write_text(cleaned, encoding="utf-8")

print(f"[OK] 已保存 {txt_file}")

except Exception as e:

print(f"[ERR] {md_file} : {e}")

print("全部完成!")

EOF

下面附赠一个文件整理并生成目录脚本

#!/bin/bash

一键合并 2024- 前缀文件,输出目录同 /2024/

复制保存为 merge2024.sh 后直接 bash merge2024.sh 即可

ROOT="/storage/emulated/0/Android/LLS_2025/Xmind/临时/github-weekly-rank-main/2024"

OUT_FILE="$ROOT/2024-github热门项目合集.txt"

cd "$ROOT" || exit

收集所有 2024-*.txt 并按自然顺序排列

mapfile -d '' LIST < <(find . -maxdepth 2 -type f -iname '2024-*.txt' -print0 | sort -zV)

IFS='\\n' LIST=((printf '%s\0' "${LIST[@]}" | tr '\0' '\n'))

{

echo "===== 大纲 ====="

for i in "${!LIST[@]}"; do

printf "%2d. %s\n" ((i+1)) "{LIST[i]#./}"

done

echo

echo "===== 正文 ====="

for f in "${LIST[@]}"; do

echo

echo "--- ${f#./} ⬇️⬇️⬇️⬇️⬇️ ---"

cat "$f"

done

} > "$OUT_FILE"

echo "报告已生成:(realpath "OUT_FILE")"

相关推荐
韩曙亮19 分钟前
【人工智能】AI 人工智能 技术 学习路径分析 ① ( Python语言 -> 微积分 / 概率论 / 线性代数 -> 机器学习 )
人工智能·python·学习·数学·机器学习·ai·微积分
Yue丶越24 分钟前
【C语言】自定义类型:结构体
c语言·开发语言
q***046333 分钟前
Linux环境下Tomcat的安装与配置详细指南
linux·运维·tomcat
BD_Marathon1 小时前
【Zookeeper】监听器原理
linux·分布式·zookeeper
喵叔哟1 小时前
6.配置管理详解
后端·python·flask
曾经的三心草1 小时前
基于正倒排索引的Java文档搜索引擎3-实现Index类-实现搜索模块-实现DocSearcher类
java·python·搜索引擎
再睡一夏就好1 小时前
string.h头文件中strcpy、memset等常见函数的使用介绍与模拟实现
c语言·c++·笔记·string·内存函数·strcpy
dangdang___go1 小时前
动态内存管理||malloc和free.realloc和calloc
c语言·开发语言·算法·动态内存管理
稚辉君.MCA_P8_Java1 小时前
Gemini永久会员 快速排序(Quick Sort) 基于分治思想的高效排序算法
java·linux·数据结构·spring·排序算法
x***44011 小时前
linux 设置tomcat开机启动
linux·运维·tomcat