德州市网站建设_网站建设公司_HTTPS_seo优化
2025/12/21 4:44:33 网站建设 项目流程

职场高效学习助手(碎片时间学习系统)

一、核心代码(模块化设计)

1. 配置文件(

"config.py")

集中管理系统参数与伪装界面内容。

# 配置模块:系统常量与伪装界面模板

import os

class Config:

# 学习片段时长范围(分钟)

MIN_DURATION = 5

MAX_DURATION = 10

# 数据存储路径

DATA_DIR = "learning_data"

PROGRESS_FILE = os.path.join(DATA_DIR, "progress.json")

# 伪装界面内容(工作报表/邮件列表模板)

DISGUISE_REPORT = [

"【周工作报表】\n- 项目A:完成需求评审(100%)\n- 项目B:开发中(60%)\n- 待办:会议纪要整理",

"【邮件列表】\n1. 领导:Q4目标确认(未读)\n2. 同事:会议邀请(已读)\n3. 系统:考勤提醒(已读)"

]

EXIT_CMD = "退出"

WELCOME_MSG = "欢迎使用职场高效学习助手(碎片时间学习系统)"

2. 资料导入模块(

"import_handler.py")

支持文字(TXT)和音频(MP3)导入,用

"pydub"处理音频。

# 资料导入:处理文字/音频文件读取

import os

from pydub import AudioSegment

from config import Config

def import_text(file_path):

"""导入TXT文字资料"""

if not os.path.exists(file_path) or not file_path.endswith(".txt"):

raise ValueError("文字文件不存在或格式错误(仅支持TXT)")

with open(file_path, "r", encoding="utf-8") as f:

return f.read().split("\n\n") # 按段落拆分(空行分隔)

def import_audio(file_path):

"""导入MP3音频资料,返回AudioSegment对象"""

if not os.path.exists(file_path) or not file_path.endswith(".mp3"):

raise ValueError("音频文件不存在或格式错误(仅支持MP3)")

return AudioSegment.from_mp3(file_path)

3. 内容拆分模块(

"content_splitter.py")

文字按段落拆分,音频按时长(5-10分钟)拆分。

# 内容拆分:将资料拆分为5-10分钟片段

from config import Config

from pydub.utils import make_chunks

def split_text(paragraphs, min_words=500, max_words=800):

"""文字按字数拆分(每段500-800字,约5-10分钟阅读量)"""

segments = []

current_segment = []

word_count = 0

for para in paragraphs:

para_words = len(para.split())

if word_count + para_words > max_words and current_segment:

segments.append("\n\n".join(current_segment))

current_segment = [para]

word_count = para_words

else:

current_segment.append(para)

word_count += para_words

if current_segment:

segments.append("\n\n".join(current_segment))

return segments

def split_audio(audio, min_sec=Config.MIN_DURATION*60, max_sec=Config.MAX_DURATION*60):

"""音频按时长拆分(5-10分钟/段)"""

chunk_length_ms = (min_sec + max_sec) // 2 * 1000 # 取中间值(7.5分钟)

return make_chunks(audio, chunk_length_ms) # 返回AudioSegment列表

4. 界面伪装模块(

"ui_disguiser.py")

模拟工作报表/邮件列表界面,支持一键切换学习/工作视图。

# 界面伪装:显示工作报表/邮件列表,隐藏学习内容

import random

from config import Config

def show_disguise():

"""显示伪装的工作界面(随机报表或邮件列表)"""

print("\n" + "="*40)

print(random.choice(Config.DISGUISE_REPORT)) # 随机显示报表或邮件

print("="*40 + "\n输入【学习】切换到学习界面,【退出】结束程序")

def switch_to_work():

"""切换到工作界面(隐藏学习内容)"""

print("\n【已切换到工作界面】")

show_disguise()

5. 学习进度记录模块(

"progress_tracker.py")

用JSON记录学习进度,支持断点续学。

# 进度跟踪:记录已完成学习内容,避免重复

import json

import os

from config import Config

def init_progress_file():

"""初始化进度文件"""

os.makedirs(Config.DATA_DIR, exist_ok=True)

if not os.path.exists(Config.PROGRESS_FILE):

with open(Config.PROGRESS_FILE, "w", encoding="utf-8") as f:

json.dump({"completed_segments": []}, f)

def mark_completed(segment_id):

"""标记片段为已完成"""

with open(Config.PROGRESS_FILE, "r+", encoding="utf-8") as f:

data = json.load(f)

if segment_id not in data["completed_segments"]:

data["completed_segments"].append(segment_id)

f.seek(0)

json.dump(data, f, ensure_ascii=False, indent=2)

def get_completed():

"""获取已完成片段ID列表"""

with open(Config.PROGRESS_FILE, "r", encoding="utf-8") as f:

return json.load(f)["completed_segments"]

6. 音频播放模块(

"audio_player.py")

后台播放音频片段,支持跳过重复内容。

# 音频播放:后台播放,支持跳过重复

import threading

import time

from pydub.playback import play

def play_audio_segment(audio_segment, segment_id):

"""后台播放单个音频片段"""

completed = get_completed() # 从progress_tracker导入

if segment_id in completed:

print(f"⏭️ 片段{segment_id}已学习,自动跳过")

return

print(f"▶️ 播放片段{segment_id}({len(audio_segment)//1000}秒)")

play(audio_segment) # 播放音频

mark_completed(segment_id) # 标记为已完成

7. 主程序入口(

"main.py")

整合模块,处理用户交互与功能调度。

# 主程序:整合模块,启动学习助手

import os

from import_handler import import_text, import_audio

from content_splitter import split_text, split_audio

from ui_disguiser import show_disguise, switch_to_work

from progress_tracker import init_progress_file, mark_completed, get_completed

from audio_player import play_audio_segment

from config import Config

def main():

init_progress_file()

print(Config.WELCOME_MSG)

show_disguise() # 初始显示伪装界面

while True:

cmd = input("\n请输入操作【学习/退出】:").strip()

if cmd == Config.EXIT_CMD:

print("感谢使用,再见!")

break

elif cmd == "学习":

# 模拟导入资料(实际可扩展文件选择对话框)

print("\n【学习界面】请选择资料类型:1.文字 2.音频")

choice = input("输入选项:").strip()

if choice == "1":

# 文字学习流程

text_paragraphs = import_text("sample.txt") # 替换为实际文件路径

segments = split_text(text_paragraphs)

for i, seg in enumerate(segments, 1):

seg_id = f"text_{i}"

if seg_id in get_completed():

print(f"⏭️ 文字片段{i}已学习,跳过")

continue

print(f"\n--- 文字片段{i} ---\n{seg}")

mark_completed(seg_id)

if input("按Enter继续,输入【工作】返回:") == "工作":

switch_to_work()

break

elif choice == "2":

# 音频学习流程

audio = import_audio("sample.mp3") # 替换为实际文件路径

segments = split_audio(audio)

for i, seg in enumerate(segments, 1):

seg_id = f"audio_{i}"

threading.Thread( # 后台播放

target=play_audio_segment,

args=(seg, seg_id),

daemon=True

).start()

if input("播放中...输入【工作】返回:") == "工作":

switch_to_work()

break

else:

print("无效选项,请重试")

else:

print("无效命令,请输入【学习】或【退出】")

if __name__ == "__main__":

main()

二、README文件(

"README.md")

# 职场高效学习助手(碎片时间学习系统)

## 项目简介

基于Python开发的碎片时间学习工具,支持导入文字/音频资料,自动拆分为5-10分钟片段,界面伪装成工作报表/邮件列表,帮助职场人合理利用时间间隙学习,避免专注被打断。

## 核心功能

1. **资料导入**:支持TXT文字、MP3音频文件

2. **智能拆分**:文字按段落拆分(500-800字/段),音频按时长拆分(5-10分钟/段)

3. **界面伪装**:模拟工作报表/邮件列表,一键切换学习/工作视图

4. **进度跟踪**:记录已完成片段,自动跳过重复内容

5. **后台播放**:音频片段后台播放,不阻塞操作

## 安装与使用

### 环境要求

- Python 3.8+

- 依赖库:`pydub`(音频处理)、`ffmpeg`(音频解码,需单独安装)

bash

pip install pydub

安装ffmpeg:"https://ffmpeg.org/" (https://ffmpeg.org/)(添加到系统PATH)

### 使用步骤

1. 下载代码:保存上述7个`.py`文件到文件夹(如`work_learning_helper`)

2. 准备资料:放入TXT文字文件(`sample.txt`)和MP3音频文件(`sample.mp3`)

3. 运行程序:`python main.py`

4. 操作示例:

欢迎使用职场高效学习助手...

输入【学习】切换到学习界面,【退出】结束程序

请输入操作【学习/退出】:学习

【学习界面】请选择资料类型:1.文字 2.音频

输入选项:1

--- 文字片段1 ---

(内容显示)

## 目录结构

├── config.py # 配置常量与伪装模板

├── import_handler.py # 资料导入(文字/音频)

├── content_splitter.py # 内容拆分(文字/音频)

├── ui_disguiser.py # 界面伪装与切换

├── progress_tracker.py # 学习进度记录(JSON)

├── audio_player.py # 音频后台播放

└── main.py # 程序入口

## 扩展方向

1. GUI界面:用Tkinter开发图形界面,增强伪装效果

2. 格式扩展:支持PDF/EPUB文字、WAV音频导入

3. 云同步:对接网盘存储学习资料与进度

三、使用说明

1. 安装依赖:

- 安装Python 3.8+,通过

"pip install pydub"安装音频库

- 安装FFmpeg(音频解码必需),并将

"bin"目录添加到系统环境变量

2. 准备资料:

- 在程序目录放入TXT文字文件(如

"sample.txt")和MP3音频文件(如

"sample.mp3")

3. 运行与操作:

- 执行

"python main.py"启动程序,初始显示伪装的工作报表/邮件列表

- 输入【学习】进入学习界面,选择文字/音频资料

- 学习中按Enter继续,输入【工作】瞬间切换回伪装界面

- 输入【退出】结束程序

四、核心知识点卡片

知识点 说明 代码应用示例

模块化设计 拆分导入、拆分、界面、进度等独立模块

"import_handler.py"与

"content_splitter.py"分离

音频处理 用

"pydub"库读取/拆分/播放音频

"AudioSegment.from_mp3()"、

"make_chunks()"

多线程播放

"threading"实现音频后台播放不阻塞

"threading.Thread(target=play_audio_segment)"

JSON数据持久化 用JSON文件记录学习进度,支持断点续学

"progress_tracker.py"中

"json.dump/load"

界面伪装逻辑 模拟工作报表模板,随机切换显示内容

"ui_disguiser.py"中

"random.choice(Config.DISGUISE_REPORT)"

内容拆分算法 文字按字数、音频按时长动态拆分

"split_text()"按500-800字分段,

"split_audio()"按7.5分钟分段

重复内容跳过 对比已完成片段ID,避免重复学习

"get_completed()"检查片段ID是否在列表中

注意事项

- 合法合规:本工具旨在帮助合理利用碎片时间学习,请遵守职场规章制度,避免影响正常工作

- 隐私保护:所有资料本地存储,不收集任何个人信息

- 扩展建议:可根据需求添加定时提醒、学习计划制定等功能

关注我,有更多实用程序等着你。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询