人生苦短,我用python——当我在玩python的时候我玩些什么

文章背景

  家里的第一台电脑是在2006年夏天买的,10年上大学之后基本上就没人用,过没两年就当二手卖给一个熟人。

  弟弟小我10岁,今年刚上初一。他在我毕业前半年就整天用妈妈的手机发短信给我,问我什么时候把学校里的台式机寄回家给他用。虽然从小就一直因为玩电脑的问题跟爸妈时不时有点小别扭,可是我还是非常鼓励弟弟接触电脑和网络的。可能有人会说小孩子就只会玩游戏,玩游戏怎么了?小孩子的天性不就是玩嘛,在娱乐的过程中其实是可以潜移默化地学会许多计算机日常使用的知识,还可以通过互联网跟已经认识、尚未认识的朋友进行沟通交流,好处多多的是。

  然而,凡事都得有个度。初中生不可能像我们成年人一样懂得克制自己(且不说很多大人都会沉迷在这个虚拟世界里),我就萌生了写一个程序限制弟弟平日玩电脑时间的想法。

技术选型

  其实我的第一想法是用Java,因为平时用的最多的就是它,而且除了C++之外就没有再用过别的语言。

  程序的基本思路

  1. 用一个txt文件记录电脑的一天内累计使用时间
  2. 累计使用时间超过若干小时就会自动关机
  3. 程序开机自动运行

  为什么我最后选择了python

  想着怎么写、搜资料的时候就发现Java并不适合,虽然不是不能实现,但有好几个问题解决起来都有点麻烦。对我这么一个“懒”程序员来说,已经构成了“弃用”的充分理由。就举一个简单的例子好了,最后会使用系统的关机命令实现自动关机这个功能,用Java+运行windows命令搜出来一大堆东西,看着就头疼。毕竟是业余时间玩玩,没必要这么耗脑子。

  可是用python就只需要用到两行代码!

1 #关机命令
2 cmd="cmd.exe /k shutdown -s -t 0";
3
4 #执行关机命令
5 os.system(cmd)

动手写代码

  在网上一通乱搜之后,很快就把测试用的代码给写出来了。

 1 #! /usr/bin/env python
 2
 3 #coding=utf-8
 4
 5 import os
 6 import time
 7 import datetime
 8
 9 #根据是否工作日设置限制时间
10 if datetime.date.today().weekday()<5:
11     timeLimit = 20
12 else:
13     timeLimit = 40
14
15 #读取文本中记录的日期
16 f = open(‘E:\\thefile.txt‘,‘r+‘)
17 f_date = f.readline()
18 f.close
19
20 #读取系统日期,并与文本日期进行比对
21 #如果不相等,则清空文件,进行当日初始化
22 n_date = time.strftime("%d/%m/%Y")+"\n"
23 if f_date != n_date:
24     print("sucessed")
25     f = open(‘E:\\thefile.txt‘,‘r+‘)
26     f.truncate()
27     f.close
28     f = open(‘E:\\thefile.txt‘,‘r+‘)
29     f.write((n_date))
30     run_time="0"
31     f.write(run_time)
32     f.close
33
34 #死循环语句,当且仅当运行时间大于等于限制时间时跳出循环
35 while 2 > 1 :
36     f = open(‘E:\\thefile.txt‘,‘r+‘)
37     f_date = f.readline()
38     run_time = f.readline()
39     run = int(run_time)
40     print(run)
41     if run<timeLimit:
42         time.sleep(2)
43         run = run + 1
44         f.truncate()
45         f.close
46         f = open(‘E:\\thefile.txt‘,‘r+‘)
47         f.write(f_date)
48         run_time = str(run)
49         f.write(run_time)
50         f.close
51     else:
52         break
53
54 #关机命令
55 cmd="cmd.exe /k shutdown -s -t 0";
56
57 print(cmd)

  为了方便大家理解程序,再把txt文件中的内容贴出来以供参考

01/10/2014
20

  需要特别提出的几个点

  第一,因为需要实现开机自启动,所以要把python文件复制到系统的“启动”文件夹里。

  第二,由于.py文件启动后会有控制台界面出现,非常影响使用效果,因此要把.py文件的后缀改成.pyw。

  第三,不需要担心如果自己想要用电脑的话会受到这个限制,只要在开机六分钟内把python进程关掉即可。

最后的成果

  忙活了一会,终于把实际使用的代码写完。

 1 #! /usr/bin/env python
 2
 3 #coding=utf-8
 4
 5 import os
 6 import time
 7 import datetime
 8
 9 #根据是否工作日设置限制时间
10 if datetime.date.today().weekday()<5:
11     timeLimit = 20
12 else:
13     timeLimit = 40
14
15 #读取文本中记录的日期
16 f = open(‘E:\\thefile.txt‘,‘r+‘)
17 f_date = f.readline()
18 f.close
19
20 #读取系统日期,并与文本日期进行比对
21 #如果不相等,则清空文件,进行当日初始化
22 n_date = time.strftime("%d/%m/%Y")+"\n"
23 if f_date != n_date:
24     print("sucessed")
25     f = open(‘E:\\thefile.txt‘,‘r+‘)
26     f.truncate()
27     f.close
28     f = open(‘E:\\thefile.txt‘,‘r+‘)
29     f.write((n_date))
30     run_time="0"
31     f.write(run_time)
32     f.close
33
34 #死循环语句,当且仅当运行时间大于等于限制时间时跳出循环
35 while 2 > 1 :
36     f = open(‘E:\\thefile.txt‘,‘r+‘)
37     f_date = f.readline()
38     run_time = f.readline()
39     run = int(run_time)
40     if run<timeLimit:
41         time.sleep(360)
42         run = run + 1
43         f.truncate()
44         f.close
45         f = open(‘E:\\thefile.txt‘,‘r+‘)
46         f.write(f_date)
47         run_time = str(run)
48         f.write(run_time)
49         f.close
50     else:
51         break
52
53 #关机命令
54 cmd="cmd.exe /k shutdown -s -t 0";
55
56 #执行关机命令
57 os.system(cmd)

  周一到周五,弟弟能用电脑的时间最多只能是两个小时;而周末,则是四个小时。

  感想

  1. 虽然这只是一个很简单的小程序,几乎可以说是毫无难度可言,但是起到的作用还是挺大的。因为我跟哥哥工作都不在家,平时都是妈妈管着弟弟,每次都要盯着他,不能让他玩电脑太长时间,有的时候要很大声地让他快点关机写作业。现在,只要大家商量好平时用电脑的时间,设定好参数就行。妈妈可以安心地做自己的事情,弟弟也可以心安理得地玩他想玩的游戏。(制定规则,以一种便捷和不容分辨的方式执行,而这种方式和途径就是减少摩擦的润滑剂)

  2. 平时工作都是用Java,业余时间用别的语言(例如python)玩玩是一个蛮有趣的做法。以兴趣和小作品作为驱动,说不定以后能成为你跳槽或者转型的凭借。

  3. 作为程序员,编程是我们的饭碗,同时也可以是我们改变生活、转变思路的工具,哪怕这种影响在别人看来微不足道。

PS:关于编程、关于在现实生活中的创意和需求,大家如果有什么有趣好玩的想法,非常欢迎在评论中留言一起分享。也可以关注我的微信公众号,“华工小y”继续交流。  

 

时间: 2024-10-03 14:55:46

人生苦短,我用python——当我在玩python的时候我玩些什么的相关文章

转 《python开发_常用的python模块及安装方法》

http://www.cnblogs.com/hongten/p/hongten_python_more_modules.html adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包MySQLdb:

为什么说Python是一门动态语言--Python的魅力

动态语言的定义:动态编程语言是高级程序设计语言的一个类别,在计算机科学领域已被广泛应用.它是一类在运行时可以改变其结构的语言:例如新的函数.对象.甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化.动态语言目前非常具有活力.众所周知的ECMAScript(JavaScript)便是一个动态语言,除此之外如PHP.Ruby.Python等也都属于动态语言,而C.C++等语言则不属于动态语言.----来自维基百科 你是不是有过给class里面变量赋值却发现程序没达到自己预期结果的遭遇?是不

【Python&amp;数据结构】 抽象数据类型 Python类机制和异常

这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Python编程,借着本次机会仔细学习一下. 抽象数据类型 最开始的计算机语言,关注的都是如何更加有效率地计算,可以说其目的是计算层面的抽象.然而随着这个行业的不断发展,计算机不仅仅用于计算,开发也不仅只关注计算过程了,数据层面的抽象也变得同样重要.虽然计算机语言一开始就有对数据的抽象,但是那些都只是对一些最基本的

代写Python、代做Python、Python作业代写、Python代写(微信leechanx)

代写Python.代做Python.Python作业代写.Python代写(微信leechanx) i++ VS ++i性能区别 i++ 为 function () { tmp = i; i = tmp + 1; return tmp; } ++i 为 function () { i = i + 1; return i; }

Python第一天---第一个Python程序

1.我的环境是windows下,需要安装notepad++,安装Python2,配置环境变量(百度下可以见) 2.打开cmd窗口-----输入I:  [输入要在哪个磁盘存储python代码(我的在I:\pyhtonCode)] ------输入cd PythonCode   [进入PythonCode文件夹] 3.打开I:\pyhtonCode文件夹,在里面新建一个txt文档,取名first.py,右键用nodepad++打开 4.打开文档,输入以下代码: 1 #!/usr/bin/python

[python]自问自答:python -m参数? (转)

python -m xxx.py 作用是:把xxx.py文件当做模块启动但是我一直不明白当做模块启动到底有什么用.python xxx.py和python -m xxx.py有什么区别! 自问自答: python xxx.py python -m xxx.py 这是两种加载py文件的方式:1叫做直接运行2相当于import,叫做当做模块来启动 不同的加载py文件的方式,主要是影响——sys.path 这个属性.sys.path 就相当于liunx中的PATH. 下面来看一下sys.path >>

Python服务器开发一:python基础

Python服务器开发一:python基础 Python(蟒蛇)是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上使用. [特点] 1 Python使用C语言开发,但是Python不再有C语言中的指针等复杂的数据类型. 2 Python具有很强的面向对象特性,而且简化了面向对象的实现.它消除了保护类型.抽象类.接口等面向对象的元素. 3 Python代码块使用空格或制表符缩进的方式分隔代码. 4 Python仅

python 调 用另一个python 程序

na = int(input("开奖时间(如:20140630): \n")) import time nb =  int(time.strftime("%Y%m%d")) #获取当前时间的年月日 #print (nb) #获取键盘输入 a = True while a:     if nb < na:         import os         os.system("python shuangseqou.py")         

python安装Fabrix出现Command &quot;python setup.py egg_info&quot;错误

python安装Fabrix出现Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-ynJnAl/pynacl/ 解决: 向上查看发现No package 'libffi' found,原因是这个libffi库未安装 所以使用:yum install libffi-devel -y 最后安装成功

python学习笔记5:python读写文件

python学习笔记5:python读写文件 一.文件的打开模式 1.打开文件 1) f=open('D:\\a.txt','w') 第一个参数是文件的路径,如果只写文件的名字,默认是在当前执行目录下的文件:第二个参数是文件的打开模式 这种方式打开文件,在使用完了之后一定要记得,关闭文件: f.close() 2) with open('D:\\a.txt','w') as f 这种方式打开文件,文件在使用完后会自动关闭文件,不需要close  2. 文件的打开模式 总的来说,文件的打开模式有三