文章背景
家里的第一台电脑是在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 time.sleep(2)
42 if run<timeLimit:
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 time.sleep(360)
41 if run<timeLimit:
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. 作为程序员,编程是我们的饭碗,同时也可以是我们改变生活、转变思路的工具,哪怕这种影响在别人看来微不足道。
最后
如果对Python感兴趣的话,可以试试我的学习方法以及相关的学习资料
对于0基础小白入门:
如果你是零基础小白,想快速入门Python是可以考虑培训的。
一方面是学习时间相对较短,学习内容更全面更集中。
Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

温馨提示:篇幅有限,已打包文件夹,获取方式在“文末”!!!
二、Python必备开发工具

三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

这份完整版的Python全套学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
博主分享了如何使用Python编写一个程序,限制弟弟在上学期间使用电脑的时间,以确保他在玩乐的同时不过度沉迷。程序通过记录每日使用时间,超过设定限制即自动关机。最终选择Python而非Java是因为Python实现更简洁。此外,还提到了程序的开机自启动、隐藏控制台界面等实现细节,并分享了学习Python的心得体会。
2147

被折叠的 条评论
为什么被折叠?



