【亲测有效】【源码】抽奖程序2.0 支持.txt文件导入 自动识别多种编码格式 实时显示导入人数 重复抽奖不限制次数 永久保留记录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以下是对代码的详细解释及功能罗列:


一、代码结构解析

1. 依赖导入
import tkinter as tk
from tkinter import filedialog, messagebox
import random
import datetime
  • tkinter:Python标准GUI库,用于创建界面
  • filedialog:文件选择对话框
  • messagebox:弹窗提示框
  • random:实现随机抽选
  • datetime:获取抽奖时间
2. 界面初始化
root = tk.Tk()
root.title("幸运抽奖程序")
root.geometry("600x400")
  • 创建600x400像素的主窗口
  • 设置窗口标题
3. 数据存储
participants = []  # 当前参与者名单
history = []       # 历史抽奖记录
4. 界面组件
组件 类型 作用
btn_import 按钮 触发文件导入
lbl_count 标签 显示当前导入人数
btn_lottery 按钮 启动抽奖
lbl_result 标签 显示本次抽奖结果
listbox_history 列表框 展示历史记录(带滚动条)

二、核心功能说明

1. 文件导入系统
def import_file():
    encodings = ['utf-8', 'gbk', 'gb18030', 'big5', 'latin-1']
    # 尝试不同编码...
  • 支持编码
    • UTF-8(推荐)
    • GBK(简体中文Windows)
    • GB18030(最新国标)
    • Big5(繁体中文)
    • Latin-1(最终回退)
  • 文件处理
    • 自动过滤空行和空白字符
    • 实时更新人数显示
    • 大文件优化(生成器表达式)
2. 抽奖逻辑
def draw_lottery():
    winner = random.choice(participants)
    # 记录时间并更新界面...
  • 随机选择机制:random.choice
  • 时间戳格式:2023-07-20 15:30:00
  • 历史记录排序:最新记录置顶
3. 异常处理体系
try:
    # 文件操作...
except UnicodeDecodeError:
    # 编码错误处理...
except Exception as e:
    # 通用错误处理...
  • 分级错误提示:
    1. 解码失败时自动尝
posted @   爱上编程技术  阅读(10)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示