Python 每日5词打卡脚本
每运行一次,弹出5个单词
每天5个,当天不变,用python写,print输出就行
Python 每日5词打卡脚本:当日固定5词,重启不重复
功能亮点
✅ 每次运行弹出5个单词,当日固定不变,次日自动更新
✅ 读取当前文件夹word.txt,一行一个单词(支持英文+音标+释义格式)
✅ 单词数量校验,不足5个自动提示,足够则循环取词不重复
✅ 代码简洁可直接复制,无多余依赖,开箱即用
核心代码(直接复制可用)
python
import os
import datetime
# 配置项:可自定义每日单词数量
WORD_FILE = "word.txt"
DAILY_COUNT = 5 # 每日固定5个单词
def get_daily_words():
# 1. 校验并读取单词文件
if not os.path.exists(WORD_FILE):
print(f"❌ 未找到{WORD_FILE},请在当前文件夹创建,一行一个单词")
return []
with open(WORD_FILE, "r", encoding="utf-8") as f:
# 过滤空行,保留有效单词
words = [line.strip() for line in f if line.strip()]
# 校验单词数量
if len(words) < DAILY_COUNT:
print(f"❌ 单词数量不足{DAILY_COUNT}个,请补充word.txt")
return []
# 2. 按日期固定索引,确保当日单词不变
# 日期转序数,取模保证索引不越界,次日自动切换
today = datetime.date.today().toordinal()
base_idx = today % len(words)
# 3. 提取当日5个单词,超出单词总数自动循环
daily_words = []
for i in range(DAILY_COUNT):
idx = (base_idx + i) % len(words)
daily_words.append(words[idx])
return daily_words
# 主执行入口:打印当日单词
if __name__ == "__main__":
daily_words = get_daily_words()
if daily_words:
print(f"📅 今日单词({datetime.date.today()}):")
for idx, word in enumerate(daily_words, 1):
print(f"{idx}. {word}")
详细使用教程
1. 准备单词文件
-
在代码同一文件夹下,新建
word.txt文件 -
单词格式:一行一个,支持纯单词/英文 音标 汉语意思 格式,无空行
✅ 示例格式(推荐编程学习用):variable /ˈveəriəbl/ 变量 function /ˈfʌŋkʃn/ 函数 class /klɑːs/ 类 array /əˈreɪ/ 数组 loop /luːp/ 循环
2. 运行脚本
- 直接运行Python文件,无需额外安装依赖
- 运行效果:自动输出当日5个单词,重复运行结果不变
- 次日打开自动切换新5个单词,无需手动修改代码
3. 注意事项
✅ word.txt需和代码放在同一文件夹,否则提示文件不存在
✅ 支持中文编码,无需担心音标、中文释义乱码
扩展用法(可选优化)
✨ 优化1:自定义每日单词数量
修改代码中 DAILY_COUNT = 5 数值即可,比如改为10则每日10词
✨ 优化2:适配多格式单词
当前脚本兼容任意单行格式,无需修改代码,直接用 英文/英文+释义/英文+音标+释义 均可
✨ 优化3:增加单词去重
若word.txt有重复单词,可在读取时增加去重逻辑,在words = [line.strip()...]后添加:
python
words = list(set(words)) # 去重
[版权所有:k846211](k846211)# Python 每日5词打卡脚本:当日固定5词,重启不重复
## 功能亮点
✅ 每次运行弹出5个单词,当日固定不变,次日自动更新
✅ 读取当前文件夹word.txt,一行一个单词(支持英文+音标+释义格式)
✅ 单词数量校验,不足5个自动提示,足够则循环取词不重复
✅ 代码简洁可直接复制,无多余依赖,开箱即用
✅ 可搭配开机自启动使用,~/.bashrc
## 核心代码(直接复制可用)
```python
import os
import datetime
# 配置项:可自定义每日单词数量
WORD_FILE = "word.txt"
DAILY_COUNT = 5 # 每日固定5个单词
def get_daily_words():
# 1. 校验并读取单词文件
if not os.path.exists(WORD_FILE):
print(f"❌ 未找到{WORD_FILE},请在当前文件夹创建,一行一个单词")
return []
with open(WORD_FILE, "r", encoding="utf-8") as f:
# 过滤空行,保留有效单词
words = [line.strip() for line in f if line.strip()]
# 校验单词数量
if len(words) < DAILY_COUNT:
print(f"❌ 单词数量不足{DAILY_COUNT}个,请补充word.txt")
return []
# 2. 按日期固定索引,确保当日单词不变
# 日期转序数,取模保证索引不越界,次日自动切换
today = datetime.date.today().toordinal()
base_idx = today % len(words)
# 3. 提取当日5个单词,超出单词总数自动循环
daily_words = []
for i in range(DAILY_COUNT):
idx = (base_idx + i) % len(words)
daily_words.append(words[idx])
return daily_words
# 主执行入口:打印当日单词
if __name__ == "__main__":
daily_words = get_daily_words()
if daily_words:
print(f"📅 今日单词({datetime.date.today()}):")
for idx, word in enumerate(daily_words, 1):
print(f"{idx}. {word}")
详细使用教程
1. 准备单词文件
-
在代码同一文件夹下,新建
word.txt文件 -
单词格式:一行一个,支持纯单词/英文 音标 汉语意思 格式,无空行
✅ 示例格式(推荐编程学习用):variable /ˈveəriəbl/ 变量 function /ˈfʌŋkʃn/ 函数 class /klɑːs/ 类 array /əˈreɪ/ 数组 loop /luːp/ 循环
2. 运行脚本
- 直接运行Python文件,无需额外安装依赖
- 运行效果:自动输出当日5个单词,重复运行结果不变
- 次日打开自动切换新5个单词,无需手动修改代码
3. 注意事项
✅ word.txt需和代码放在同一文件夹,否则提示文件不存在
✅ 支持中文编码,无需担心音标、中文释义乱码
扩展用法(可选优化)
✨ 优化1:自定义每日单词数量
修改代码中 DAILY_COUNT = 5 数值即可,比如改为10则每日10词
✨ 优化2:适配多格式单词
当前脚本兼容任意单行格式,无需修改代码,直接用 英文/英文+释义/英文+音标+释义 均可
✨ 优化3:增加单词去重
若word.txt有重复单词,可在读取时增加去重逻辑,在words = [line.strip()...]后添加:
python
words = list(set(words)) # 去重
[点我查看更多精彩内容:www.flydean.com](www.flydean.com):当日固定5词,重启不重复
## 功能亮点
✅ 每次运行弹出5个单词,当日固定不变,次日自动更新
✅ 读取当前文件夹word.txt,一行一个单词(支持英文+音标+释义格式)
✅ 单词数量校验,不足5个自动提示,足够则循环取词不重复
✅ 代码简洁可直接复制,无多余依赖,开箱即用
✅ 可搭配开机自启动使用,~/.bashrc
## 核心代码(直接复制可用)
```python
import os
import datetime
# 配置项:可自定义每日单词数量
WORD_FILE = "word.txt"
DAILY_COUNT = 5 # 每日固定5个单词
def get_daily_words():
# 1. 校验并读取单词文件
if not os.path.exists(WORD_FILE):
print(f"❌ 未找到{WORD_FILE},请在当前文件夹创建,一行一个单词")
return []
with open(WORD_FILE, "r", encoding="utf-8") as f:
# 过滤空行,保留有效单词
words = [line.strip() for line in f if line.strip()]
# 校验单词数量
if len(words) < DAILY_COUNT:
print(f"❌ 单词数量不足{DAILY_COUNT}个,请补充word.txt")
return []
# 2. 按日期固定索引,确保当日单词不变
# 日期转序数,取模保证索引不越界,次日自动切换
today = datetime.date.today().toordinal()
base_idx = today % len(words)
# 3. 提取当日5个单词,超出单词总数自动循环
daily_words = []
for i in range(DAILY_COUNT):
idx = (base_idx + i) % len(words)
daily_words.append(words[idx])
return daily_words
# 主执行入口:打印当日单词
if __name__ == "__main__":
daily_words = get_daily_words()
if daily_words:
print(f"📅 今日单词({datetime.date.today()}):")
for idx, word in enumerate(daily_words, 1):
print(f"{idx}. {word}")
详细使用教程
1. 准备单词文件
-
在代码同一文件夹下,新建
word.txt文件 -
单词格式:一行一个,支持纯单词/英文 音标 汉语意思 格式,无空行
✅ 示例格式(推荐编程学习用):variable /ˈveəriəbl/ 变量 function /ˈfʌŋkʃn/ 函数 class /klɑːs/ 类 array /əˈreɪ/ 数组 loop /luːp/ 循环
2. 运行脚本
- 直接运行Python文件,无需额外安装依赖
- 运行效果:自动输出当日5个单词,重复运行结果不变
- 次日打开自动切换新5个单词,无需手动修改代码
3. 注意事项
✅ word.txt需和代码放在同一文件夹,否则提示文件不存在
✅ 支持中文编码,无需担心音标、中文释义乱码
扩展用法(可选优化)
✨ 优化1:自定义每日单词数量
修改代码中 DAILY_COUNT = 5 数值即可,比如改为10则每日10词
✨ 优化2:适配多格式单词
当前脚本兼容任意单行格式,无需修改代码,直接用 英文/英文+释义/英文+音标+释义 均可
✨ 优化3:增加单词去重
若word.txt有重复单词,可在读取时增加去重逻辑,在words = [line.strip()...]后添加:
python
words = list(set(words)) # 去重
[点我查看更多精彩内容:www.flydean.com](www.flydean.com)