Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden des Python-Skripts zum geplanten Herunterfahren von Windows

Verwenden des Python-Skripts zum geplanten Herunterfahren von Windows

高洛峰
高洛峰Original
2017-03-22 09:14:562154Durchsuche

Da ich meinen Laptop häufig zum Teilen von WLAN verwende, aber nicht möchte, dass mein Laptop über Nacht eingeschaltet ist (aus Gründen der CO2-Reduzierung und des Umweltschutzes ~_~!), muss ich DOS-Befehle verwenden es jedes Mal herunterzufahren, was sich sehr mühsam anfühlt. Ich habe kürzlich Python gelernt und mich daher entschieden, Python zu verwenden, um ein geplantes Shutdown-Skript zu schreiben:

Da der Code relativ einfach ist, gibt es nicht viel zu sagen. Gehen wir direkt zum Code.

Codeblock


# -*- 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 &#39;距离关机还有 %d 秒&#39; %s1
os.system(&#39;shutdown -s -t %d&#39; %s1 )

Der Autor sagte

Nicht lange nachdem ich angefangen hatte, Python selbst zu lernen , Ich habe dieses Skript geschrieben Es ist relativ einfach und viele Funktionen wurden nicht hinzugefügt, wie zum Beispiel: Eingabedatenprüfung, und die Methode zur Verarbeitung von Ausgabedaten ist auch relativ grob. Es gibt auch viele schlecht geschriebene Stellen Wer es sieht, kann es gerne korrigieren.

Beim Vervollständigen des Skripts sind Probleme aufgetreten

Ich werde rot, wenn ich sage, dass ich beim Schreiben des Skripts viele dumme Fehler gemacht habe. Um künftiges Erröten zu vermeiden und auch Anfängern ein Lehrbeispiel für Fehler zu geben, notiere ich sie hiermit, und der Meister wird sich freuen, sie zu sehen ~_~

1. Ich habe Ganzzahl/Ganzzahl = Ganzzahl vergessen. Die Zeit war während des Tests immer falsch, weil die Zahl, die ich geteilt habe, 60 war. Später habe ich die Ergebnisse einzeln berechnet.

2. Ich habe vergessen, den von raw_input() erhaltenen Datentyp zu konvertieren Beim Testen habe ich direkt einen Fehler gemeldet und dann fiel mir ein, dass ich betrunken war. Als ich mit dem Schreiben des Skripts fertig war und es ausführte, zeigte die Konsole verstümmelte Zeichen an. Später fand ich die Lösung über Baidu

u'xxx'.encode('mbcs')

Das obige ist der detaillierte Inhalt vonVerwenden des Python-Skripts zum geplanten Herunterfahren von Windows. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn