终端古风词卷 · Python 零依赖 · 30 行
📜 诗旨
把李商隐的千古名句写成终端动态词卷:
✅ 逐字浮现(毛笔顿挫)
✅ 百花飘色(随机花瓣)
✅ 东风残影(渐变灰白)
一键运行,满屏都是晚唐的离愁。
💻 源码:相见时难.py(< 30 行)
#!/usr/bin/env python3
import os, time, random, sys
poem = "相见时难别亦难,东风无力百花残"
petals = "🌸🌺🌼🌻🌷" # 百花池
def petal_color(i, max_i):
# 残红→灰白 渐变
r = 255 - int(205 * i / max_i)
g = 200 - int(150 * i / max_i)
b = 200 - int(180 * i / max_i)
return f"\033[38;2;{r};{g};{b}m"
def brush_write(text):
for i, ch in enumerate(text):
color = petal_color(i, len(text))
petal = random.choice(petals) if i % 3 == 0 else ""
sys.stdout.write(color + ch + petal + "\033[0m")
sys.stdout.flush()
time.sleep(0.12) # 毛笔顿挫
print()
def main():
os.system('clear||cls')
print("\033[90m🌸 相见时难别亦难,东风无力百花残 🌸\033[0m")
time.sleep(1)
brush_write(poem)
time.sleep(2)
print("\033[90m—— 李商隐 · 晚唐\033[0m")
if __name__ == "__main__":
main()
✅ 运行方式
python 相见时难.py
🎨 可玩改装
| 玩法 | 一行提示 |
|---|---|
| 更慢顿挫 | time.sleep(0.2) |
| 随机花瓣 | if random.random() < 0.3: 加花瓣 |
| 背景乐 | os.system("afplay 古风.mp3 &") |
| 打包发送 | pyinstaller -F 相见时难.py |
🏁 一句话总结
**“把晚唐的离愁写进字符,把东风的残影写进颜色,把相见与别离写进每一次顿挫。”**🌸