import csv
import tkinter as tk
import tkinter.messagebox
import datetime
import pandas as pd
import os
import random
dt = datetime.datetime.now()
time = dt.strftime("%Y-%m-%d %H:%M:%S")
#保存参与抽奖的数据
def save():#判断文件是否存在flag = os.path.isfile('G:/code/079/data.csv')if flag:#打开文件with open('G:/code/079/data.csv', 'r',newline='') as f:#读取数据reader = csv.reader(f)h1 = next(reader)myval=[]for row in reader:#将“幸运码”列保存到myval列表中myval.append(int(row[3]))num = random.randint(0, 1000)with open('G:/code/079/data.csv', 'a+',newline='') as f:writer = csv.writer(f)writer.writerow([txt_name.get(),txt_tel.get(),time,num])   # 写入一行数据    else:num = random.randint(0, 1000)with open('G:/code/079/data.csv', 'w',newline='') as f:# 如不指定newline='',有时会写入空行writer = csv.writer(f)writer.writerow(['姓名', '手机号', '参与抽奖时间','幸运码'])  # 写入一行标题writer.writerow([txt_name.get(),txt_tel.get(),time,num])     # 写入第一行数据tkinter.messagebox.showinfo("消息提示",'您的幸运码是:'+str(num))      #弹出消息提示框
#读取数据抽取幸运码
def read():df = pd.DataFrame(pd.read_csv('G:/code/079/data.csv',encoding = 'gbk'))sam = df.sample(3)tkinter.messagebox.showinfo("消息提示",'获奖幸运码:'+ str(sam.iloc[0,3]) +'、'+ str(sam.iloc[1,3]) +'、'+ str(sam.iloc[2,3])) tkinter.messagebox.showinfo("消息提示",'获奖姓名:'+ str(sam.iloc[0,0]) +'、'+ str(sam.iloc[1,0]) +'、'+ str(sam.iloc[2,0]))
#建立主窗口window
window = tk.Tk()
#设置窗口标题栏名称
window.title('抽奖小程序')
#设置窗口的大小
window.geometry('600x390')
canvas = tk.Canvas(window, width=600, height=400)
image_file = tk.PhotoImage(file='G:/code/079/1.png')
image = canvas.create_image(320, 0, anchor='n', image=image_file)
canvas.pack(side='top')
# 在主窗口添加标签
l1 = tk.Label(window, text='姓    名:', font=('Arial', 12)).place(x=30, y=320)
l2=tk.Label(window, text='手机号:',font=('Arial', 12)).place(x=30, y=350)
# 在主窗口添加文本框
txt_name = tk.StringVar()
text1 = tk.Entry(window,textvariable=txt_name, show = None,width=45)
txt_tel= tk.StringVar()
text2 = tk.Entry(window,textvariable=txt_tel,show = None,width=45)
text1.place(x=100,y=320)
text2.place(x=100,y=350)
# 在主窗口添加命令按钮
button1 = tk.Button(window,width=10, height=3,text='点击参与',bg='tomato',command=save).place(x=430, y=310)
button2 = tk.Button(window,width=10, height=3,text='开奖',bg='orange',command=read).place(x=510, y=310)
# 主窗口循环显示
window.mainloop()

运行结果:

基于tkinter的随机抽奖程序(每天一个python小项目)相关推荐

  1. python秒表项目_第一个Python小项目——秒表

    一.项目描述: 前言: 这只是我今天试着写的一个小项目,这个项目我发在博客上只是为了便于保存,日后自己看起来方便,所以很多地方没有写注释,如果大家有什么想法,欢迎给我留言. 项目名称: 简易秒表 开发 ...

  2. 我写了一个Python小项目

    最近我写了一个 Python 练手小项目,它是一个 PC 桌面版的便签程序,很简陋.写这个小项目是为了熟悉一下用 Python 进行一个完整的项目开发,进一步熟练 Python 的使用. 界面是这样的 ...

  3. 随机抽奖程序(每天一个python小项目)

    import random num = [] # 用于存放抽奖码 print("欢迎来到抽奖小程序!")while True:usernum = input("请输入参与 ...

  4. python小程序-第一个python小程序——即时动态时钟(代码解读)

    代码资源来自: 一.完整代码: #coding=UTF-8 from turtle import * from datetime import * def Skip(step): #建立表的外框 pe ...

  5. 九宫格切图器(每天一个python小项目)

    首先安装PIL库: import tkinter as tk from PIL import Image,ImageTk import sys import tkinter.filedialog im ...

  6. 幸运大转盘(每天一个python小项目)

    from turtle import * import turtle from random import randint import sys #屏幕初始化 screen = turtle.Scre ...

  7. 使用OpenCV-Python为照片添加不同滤镜(每天一个python小项目)

    原图如下所示: 灰度滤镜 import cv2 # 导入OpenCV-Python模块 import os # 导入文件与系统模块 import numpy as np # 导入数值计算库'''* 功 ...

  8. 创建动态时钟(每天一个python小项目)

    ''' 动态时钟 ''' import turtle # 导入绘图海龟模块 import datetime # 导入日期时间模块# 移动一段距离 def skip(distance): # 移动方法, ...

  9. 商品价格竞猜简易版(每天一个python小项目)

    list = [['小米手环4',209],['荣耀手环5',199],['华为手环B5',849],['ZNNCO智能血压手环',379]] order = 0 price = 0 print(&q ...

最新文章

  1. 用python画玫瑰花简单-利用python的turtle库画一朵简单的玫瑰花,并添加文字
  2. AdventureWorksDW 2019还原图解
  3. [视频教程] 配置mysql用户的权限并查询数据
  4. Jenkins打包之本地远程自动打包教程
  5. 易助erp系统服务器安装,易助ERP系统操作培训教程
  6. skynet源码阅读4--定时器实现
  7. numpy - np.append
  8. AR、VR、MR的那些事儿
  9. python中计算ln和lg的方法
  10. jenkins 管理员邮箱配置
  11. 镜子--天空16度蓝
  12. 你的快递“动”了吗,快递受阻,缺的不止快递小哥
  13. (压位)高精度乘法,高精度加法,高精度减法,高精度除法
  14. 海关跨境电商进口统一版信息化系统平台数据实时获取接口(试行) java版
  15. melodic 奥比中光(orbbec)相机安装
  16. 转自 计算机硕士找offer的总结 节选
  17. 计算机控制实验报告组态软件学习,基于组态软件的PLC实验教学系统
  18. 水电缴费系统php源码_php简易扫码付教育收费系统 v1.0
  19. 干货 l 如何为Mist建立无服务器应用
  20. C - Marbles Gym - 102348C

热门文章

  1. Excel中插入柱状图以及在图下方显示数据表
  2. Android Studio安装与App开发步骤详解
  3. spark_黑名单过滤题目:广告点击数据统计。
  4. 主备 主从 主主模式
  5. html4可以class,class4:HTML入门.ppt
  6. 日剧《黑鹭/诈欺猎人》故事简介
  7. 【Linux驱动开发】阻塞和非阻塞IO
  8. 基于ZCU106平台部署Vitis AI 1.2/2.5开发套件【Vivado+Vitis+Petalinux2020/2022】
  9. 手机操作系统进入混战状态
  10. H3C模拟器DHCP两台路由器配置实验详细步骤