>백엔드 개발 >파이썬 튜토리얼 >Python 예약 종료 Windows 스크립트 사용

Python 예약 종료 Windows 스크립트 사용

高洛峰
高洛峰원래의
2017-03-22 09:14:562222검색

저는 노트북을 이용해 WiFi를 공유하는 경우가 많은데, (저탄소와 환경 보호를 위해~_~!) 노트북을 밤새 켜두는 것을 원하지 않아서 DOS 명령을 사용해야 합니다. 매번 종료하는 것은 매우 번거로운 일입니다. 최근에 우연히 Python을 배우게 되었기 때문에 Python을 사용하여 예약된 종료 스크립트를 작성하기로 결정했습니다.

코드가 상대적으로 간단하므로 말할 것도 없고 직접 코드로 넘어가겠습니다.

Code block


# -*- 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이었기 때문에 테스트 중에 시간이 항상 잘못되었습니다. 이것은 정수이므로 얻은 결과는 모두 잘못되었습니다. 나중에 결과를 하나씩 계산해 보니 제가 취한 상태였습니다

2. raw_input()으로 얻은 데이터가 문자열인 경우. 테스트해보니 제가 직접 오류를 보고했는데 취해서 생각이 나네요.

3.드디어 스크립트 작성을 마치고 실행해보니 콘솔에 글자가 깨져서 표시되는 문제가 있었습니다. 나중에 바이두

u'xxx'.encode('mbcs')를 통해 해결책을 찾았습니다.

위 내용은 Python 예약 종료 Windows 스크립트 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.