当前位置:首页>python>Python编程小技巧--旋转加载器

Python编程小技巧--旋转加载器

  • 2026-10-01 19:54:52
Python编程小技巧--旋转加载器
旋转加载器广泛应用于各类需要提示用户“系统正在处理”的场景,通过动态旋转效果缓解等待焦虑,提升交互体验。
⏳ 加载中 \
通过自动循环变为 / → - → | → \ ...,若干次后显示 ✅ 完成。
比如‌当用户触发网络请求(如获取列表、提交表单)时,页面内容尚未返回,此时显示旋转加载器可明确告知用户操作已生效、系统正在响应。或者在文件传输过程中,尤其是大文件或网络较慢时,旋转加载器作为过渡动画,提示用户后台任务正在进行。
python代码实现也并不复杂,只需要下面几行即可(可直接运行看到动态效果)
import timefor i in range(20):    print(f'\r⏳ 加载中 {["|", "/", "-", "\\"][i % 4]}', end='', flush=True)    time.sleep(0.1)print('\r✅ 加载完成!      ')  # 注意末尾空格覆盖残留字符
其核心原理如下

1️⃣ \r 回车符:光标回到行首,不换行,并且覆盖当前行内容

2️⃣ end='':阻止自动换行

  • 默认 print() 结尾带 \n → 每次输出新行 → 无法覆盖
  • end='' 禁用换行 → 保持在同一行 → 配合 \r 实现覆盖

3️⃣ flush=True:解决输出缓冲

  • Python 默认缓冲输出(攒够一定量才显示)
  • flush=True 强制立即输出 → 避免动画“卡顿/延迟”

4️⃣ 字符序列循环:视觉旋转感

chars = ["|", "/", "-", "\\"]chars[i % 4]  # 0→|, 1→/, 2→-, 3→\, 4→|... 循环产生旋转错觉
通过简单封装就可以轻松复用了,适合嵌入任何 Python 脚本作为等待提示
import timeimport sysdef spinner(text="加载中", duration=2, speed=0.1):    end_time = time.time() + duration    chars = "|/-\\"    idx = 0    while time.time() < end_time:        sys.stdout.write(f'\r{text}{chars[idx % len(chars)]}')        sys.stdout.flush()        idx += 1        time.sleep(speed)    sys.stdout.write(f'\r{text} ✅{" " * 10}\n')  # 清理残留 + 换行# 使用示例spinner("数据处理", duration=3)spinner("网络请求", duration=1.5, speed=0.05)

推荐合集

推荐文章

最新文章

随机文章