每天的工作其实很无聊,早知道应该去IT公司闯荡的。最近的工作内容是每逢一个整点,从早7点到晚11点,去查一次客流数据,整理到表格中,上交给素未蒙面的上线,由他呈交领导查阅。

人的精力毕竟是有限的,所以不一定在每个整点都可以及时去做这项工作。灵机一动,这种一丝不苟的活儿应该让计算器来做,由它来在每个整点来告诉我该去工作了。

说干就干,平时只用c#写过小程序,由于办公电脑上是公用的,所以没有想自己电脑一样装有visual studio,索性心一横,用python试试吧。总是听说那句大名鼎鼎的“人生苦短,我用python”。这一次就当是我的入门吧。

我的需求其实很简单,让程序获取当前的时间,然后使用间隔为1秒的timer去重复刷新时间,当时间滚动到整点的时候,且该整点在我们预期区间[7-23]点内,我就让计算机发出蜂鸣声来提示该去查客流了。

通过简单的查阅,我决定使用tkinter来做UI,我对UI的要求不高,本身的设计也很糟糕,所以只是要在窗口上放一个Lable,让这个Lable的text按秒来显示当前的时间。

第一步,使用tkinter绘制窗体,在该窗体上增加一个Lable,效果图就是下面这样:

接下来,第二步,使用一个timer来计时,interval 设置为1000ms,在start()时间中实现,获取当前时间值,重新赋到Lable的text属性上,这样就实现了类似时钟的滚动效果。效果图如下:

前两步都顺利实现了,代码方面就剩下一步了。最后一步要做的就是,在start()事件时候,判断获取的当前时间是否是整点,如果是预期的整点,就让电脑蜂鸣一阵,以提醒我该去工作了。这里面主要就一个新功能,怎样使得计算器蜂鸣。

附代码如下(python 2.7):

1 #-*- coding: utf-8 -*-

2 from tkinter import * #导入 Tkinter 库

3 importtime,datetime,winsound,threading4

5 root =Tk()6 lbl = Label(root,text ="hello,world",width = 30,height = 2)7

8 deftick():9 globaltimer10 timer = threading.Timer(1.0,tick,"")11 currenttime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))12 lbl.config(text =currenttime)13 currenttime1 =datetime.datetime.now()14 if currenttime1.minute == 0 and currenttime1.second == 0 and currenttime1.hour > 5 and currenttime1.hour < 23:15 winsound.Beep(1000,5000)16 #其中600表示声音大小,1000表示发生时长,1000为1秒

17 lbl.pack() #将小部件放置到主窗口中

18 timer.start()19

20

21 if __name__ == "__main__":22 timer = threading.Timer(1.0,tick,"")23 timer.start()24

25

26 root.mainloop()

View Code

前面这些都不是我今天记录的重点。这篇文章的记录重点在尝试将py代码编译成exe文件。

安装pyinstaller

到指定目录下使用pyinstaller来讲py文件编译成exe

首先完成第一步,在安装python后,完成环境变量的配置,这点我在这里不赘述,请在博客园上查。这里简单介绍下在cmd上安装pyinstaller。为啥用它呢?请百度,我现在也一知半解。安装命令:pip install pyinstaller,具体安装过程如下截图:

接下来我们来做第二步。我今天在这一步上走了很多弯路,最终在查阅众多资料后,得到了一个勉强可用的折中方法。如果大家有更好的方法,请不吝指教。

我们把写好的py文件,拷贝到如下路径:

使用如下命令进行编译成exe文件:

pyinstaller -F -w yourfilename.py

成功编译生成exe文件,生成的文件结构如图:

至此,我完成了今天的工作。使用简单的python编写一个定时提醒程序。

这里我记录两个疑问:

第一,感觉py文件经pyinstaller编译出来的exe文件偏大,足有8兆多,这是为什么?

第二,如果不在指定目录下编译成exe,就不会成功,这是为什么?附带失败截图:

最后,在这里留下一点未来可以扩展的地方,下次尝试使用tts技术,实现整点报时提醒,毕竟现在的蜂鸣嘟嘟声,实在是有点傻。

python写小程序-用python写个简单的小程序,编译成exe跑在win10上相关推荐

  1. python做好的程序如何变成小程序-使用python编写简单的小程序编译成exe跑在win10上...

    每天的工作其实很无聊,早知道应该去IT公司闯荡的.最近的工作内容是每逢一个整点,从早7点到晚11点,去查一次客流数据,整理到表格中,上交给素未蒙面的上线,由他呈交领导查阅. 人的精力毕竟是有限的,所以 ...

  2. python编译成exe速度会变快吗_python如何编译成exe

    Python 程序都是脚本的方式,一般是在解析器里运行,如果要发布出去,需要提前安装解析器才可以运行,为了在 Windows 里方便发布,只要点击一个 EXE 文件运行,并且打包所需要库文件,这样发布 ...

  3. python编译成exe和exe反编译成python

    先看文章概要.再看左侧目录,可准确找到需要内容 文章概要:python文件可编译成exe文件,exe文件也可通过反编译恢复为python文件.下面简单介绍如何生成exe和恢复python python ...

  4. python编译成exe有意义吗_python工程编译成EXE

    前言 python编译成EXE文件后,可以独立使用.亲测,一个复杂的python工程包含多个包多个模块,可以生成exe文件. 目的 windows下将整个python工程编译成单个EXE或者单个目录带 ...

  5. java程序编译成exe文件_将java程序编译成独立运行的exe文件

    将java程序编译成独立运行的exe文件 众所周知java的程序可以"一次编译,到处运行",这个特性不错,但是实现这个特性的前提是当前的平台 必须有相应的jvm,而且如果当前平台的 ...

  6. VC程序编译成exe后需msvcr100.dll、msvcp100.dll才能运行的解决方法

    问题: vVC程序编译成exe运行提示缺少msvcr100.dll.msvcp100.dll文件. 要点: 1.将编译模式设置为 Release 模式,选择对应的Win平台32位或64位: 2.设置设 ...

  7. python编写一个简单的程序验证码_Python实现一个简单的验证码程序

    老师讲完random函数,自己写的,虽然和老师示例的不那么美观,智能,但是也自己想出来的,所以记录一下,代码就需要自己不断的自己练习,实战,才能提高啊!不然就像我们这些大部分靠自学的人,何时能学会.还 ...

  8. python b站动态转发、动态评论区抽奖(已打包成exe,可以下载食用)

    前言 更新日志 2022-5-28 由于发现b站api变更,更新新版本v3.6进行适配 2022-8-1 更新兼容视频动态版本v3.7 2022-9-20 基于ttk库优化UI,发布版本v3.8 简述 ...

  9. python 编译成exe黑屏_python''外星人入侵''打包成exe遇到的问题和解决办法,闪退,黑屏。...

    利用python写完"外星人入侵之后",尝试打包成exe给自己玩得方便点.然后我在网上查找各种方法.下面按顺序列出. 一:我首先安装好了pyinstaller:在cmd中输入:pi ...

最新文章

  1. 合并模拟器和真机的静态库动态库aggregate
  2. 数牍科技完成超3亿元A轮融资,隐私工程守护数据全生命周期流通协作
  3. 交换机 BootROM 下的升级配置
  4. 梯度下降法和随机梯度下降法
  5. 和get redis_SpringBoot整合Redis,你get了吗?
  6. JPA + Hibernate + PostgreSQL + Maven基本配置示例
  7. baseline_如何安装和使用Microsoft Baseline Security Analyzer(MBSA)
  8. 不必仰望他人,用自己的方式活着就好
  9. CocosCreator动画背景移动及其小鸟重力加速度坠落
  10. 山东大学计算机组成课设,山东大学计算机组成原理课程设计实验报告.pdf
  11. centos 官网下载
  12. Android文字跑马灯简单实现的三种方法
  13. 比较正确的 iPhone7/7+ 的进入DFU的方法是这样的
  14. 时序知识图谱推理:Know-Evolve: Deep Temporal Reasoning for Dynamic Knowledge Graphs
  15. 怎么保证自动化脚本没有问题_质量保证将使设计变得自动化
  16. C++基础:模板:函数模板和类模板
  17. BitComet下载做种方法之完全解析- -
  18. kettle快速连接clickhouse
  19. office(如:Word、Excel、PPT 等)文件轻松实现在线预览
  20. c#中的命名空间、类

热门文章

  1. 记一次EventBus内存泄露导致的项目问题
  2. (转载)IP、主机名和域名
  3. elasticsearch 路由文档到分片
  4. python中ocr软件tesseract使用
  5. 如何判断ListView中的CheckItem项是否选中?并将所以选项从ListView控件中删除?
  6. Eclipse使用gradle编译时,使用固定的jdk版本进行编译(修改gradle的jdk编译版本)
  7. JS里的居民们7-对象和数组转换
  8. morphia(1)-基础
  9. 洛谷—— P1869 愚蠢的组合数
  10. Visual Studio各版本工程文件之间的转换 [转载]