PythonのスケジュールされたWindowsシャットダウンスクリプトを使用する

高洛峰
リリース: 2017-03-22 09:14:56
オリジナル
2202 人が閲覧しました

私はよくラップトップを使って WiFi を共有しますが、一晩中ラップトップの電源を入れたくないので (低炭素と環境保護 ~_~!)、シャットダウンするには DOS コマンドを使用する必要があります。毎回それを削除するのは非常に面倒に感じます。私はたまたま最近 Python を学習していたので、Python を使用してスケジュールされたシャットダウン スクリプトを作成することにしました:

コードは比較的単純なので、特に言うことはありません。コードに直接進みましょう。

コードブロック


# -*- 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 )
ログイン後にコピー

著者はこう言っています

私がPythonを独学で学び始めて間もない頃、このスクリプトは比較的粗雑で、入力データのチェックやメソッドなど、多くの機能が追加されていませんでした。出力データの処理も比較的雑で、まだよく書かれていない部分がたくさんあります。読んだマスターが自由に修正してくれることを願っています。

脚本を完成させる際に遭遇した問題

それについて話すと赤面してしまいますが、脚本を書く過程でたくさんの愚かな間違いを犯しました。将来赤面することを避けるため、そして始めたばかりの人に間違いの例を提供するために、ここにすべてを記録します。マスターが読むのは楽しいことです ~_~

1。整数/整数 = 整数。分を時間に変換すると、除算する数値が 60 になるため、テスト時に時間が常に間違っています。これは整数なので、後で計算を出力すると、得られる結果はすべて間違っています。結果を 1 つずつテストしました

2. データ型を変換するのを忘れて、raw_input() で取得したデータが文字列だったので、直接エラーを報告しました。酔っ払っていたことを思い出しました

3. 最後にスクリプトを書いて実行すると文字化けが発生しました。その後、Baiduで解決策を見つけました。 xxx'.encode('mbcs')

以上がPythonのスケジュールされたWindowsシャットダウンスクリプトを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート