Maison > Article > développement back-end > Utilisation du script Windows d'arrêt programmé de Python
Comme j'utilise souvent mon ordinateur portable pour partager le WiFi, mais que je ne veux pas que mon ordinateur portable soit allumé pendant la nuit (dans un souci de faible émission de carbone et de protection de l'environnement ~_~ !), je dois donc utiliser les commandes DOS de l'arrêter à chaque fois, ce qui semble très gênant. Il se trouve que j'apprenais Python récemment, j'ai donc décidé d'utiliser python pour écrire un script d'arrêt programmé :
Pas grand chose à dire puisque le code est relativement simple, passons directement au code.
Bloc de code
# -*- coding: utf-8 -*- """ Created on Sat Dec 19 11:18:16 2015 @author: win7 """ '''定时关机''' '''脚本功能:windows下,用户按照一定格式输入关机时间,系统到指定时间自动关闭 思路:从用户输入获取指定时间 分别以时分秒减去当前时间 最终计算得到当前时间距离指定 时间还有多少秒 作为关机命令的时间参数 ''' '''需要用到的模块: os 用于执行设定的系统命令 time 用于获取系统时间 需要用到的命令: shutdown -s -t xxx 其中xxx为距离自动关机所用秒数,即时间参数 shutdown -a 取消关机计划 ''' import os,time #获取用户指定关机时间 print u'使用说明:输入关机时间,格式如:小时:分钟 举个栗子:20:21 然后敲回车 即可 如果想取消定时关机 再次双击打开程序 输入 off 敲回车 即可'.encode('mbcs') #u'xxx'.encode('mbcs') 使正文字符在控制台正确显示 input_time=raw_input(u'请输入关机时间,格式如:小时:分钟 :'.encode('mbcs')) #取消定时关机 #计划总有变化 先留条后路 if input_time == 'off': os.system('shutdown -a') #输入数据检查 #由于是自用 暂时略过 #提取时分秒 h1 = int(input_time[0:2]) m1 = int(input_time[3:5]) #print h1,m1#验证获取是否正确 #获取当前系统时间 mytime = time.strftime('%H:%M:%S') h2 = int(mytime[0:2]) m2 = int(mytime[3:5]) #print h2,m2 #验证获取是否正确 #对用户输入数据进行整理 防止出现25:76:66这样的时间数据 if h1 > 24: h1 = 24 m2 = 0 if m1 > 60: m1 = 60 if h1<h2: h1 = h1 + 24 #计算秒数 s1=(h1+(m1/60.0)-h2-(m2/60.0))*3600 print '距离关机还有 %d 秒' %s1 os.system('shutdown -s -t %d' %s1 )
L'auteur a dit
Je viens de commencer à apprendre Python par moi-même, et ce script a été écrit il n'y a pas longtemps. Il est relativement simple et de nombreuses fonctions n'ont pas été ajoutées, telles que : la vérification des données d'entrée, et la méthode de traitement des données de sortie est également relativement grossière. Il y a aussi de nombreux endroits mal écrits. les experts qui le verront se sentiront libres de les corriger.
Problèmes rencontrés pour terminer le scénario
C'est un peu gênant de dire que j'ai fait beaucoup d'erreurs stupides dans le processus d'écriture du scénario. Afin d'éviter de rougir à l'avenir, et aussi de fournir un exemple pédagogique d'erreurs à ceux qui débutent, je les enregistre toutes par la présente, et le maître sera heureux de les voir ~_~
1. J'ai oublié entier/entier = entier. L'heure était toujours erronée pendant le test car lorsque je convertissais les minutes en heures, le nombre que je divisais était 60. C'est un entier, donc les résultats que j'ai obtenus étaient tous faux. Plus tard, j'ai calculé les résultats un par un. Lors du test de sortie, j'ai réalisé que j'étais ivre 2. J'ai oublié de convertir le type de données. Les données obtenues par raw_input() sont une chaîne. testé, j'ai signalé une erreur directement et puis je me suis rappelé que j'étais ivre 3 Enfin, il y a eu le problème d'affichage des personnages. Lorsque j'ai fini d'écrire le script et de l'exécuter, la console affichait des caractères tronqués. Plus tard, j'ai trouvé la solution via Baiduu'xxx'.encode('mbcs')
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!