?
程序的基本思路
- 用一個txt文件記錄電腦的一天內累計使用時間
- 累計使用時間超過若干小時就會自動關機
- 程序開機自動運行
為什么我最后選擇了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 python2 3 #coding=utf-84 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文件中的內容貼出來以供參考
需要特別提出的幾個點
第一,因為需要實現開機自啟動,所以要把python文件復制到系統的“啟動”文件夾里。
第二,由于.py文件啟動后會有控制臺界面出現,非常影響使用效果,因此要把.py文件的后綴改成.pyw。
第三,不需要擔心如果自己想要用電腦的話會受到這個限制,只要在開機六分鐘內把python進程關掉即可。
最后的成果
忙活了一會,終于把實際使用的代碼寫完。
1 #! /usr/bin/env python2 3 #coding=utf-84 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)