1. 基础语法

1.1 time模块

(1)time.time()函数
import time
time = time.time()
#返回一个浮点数,称为UNIX纪元时间戳,即1970.1.1 00:00 开始的秒数
(2)time.sleep()函数
time.sleep(5)
#希望程序暂停的时间
(3)round()四舍六入五成双
now = time.time()
round(now,2)
#round函数取到小数点后几位,5前为奇数,舍5入1;5前为偶数,舍5不进

1.2 datetime模块

import datetime
dt = datetime.datetime.now()
#返回一个datetime对象(年,月,日,时,分,秒),dt.year,dt.month等得到特定时刻的datetime对象 
(1)datetime 与 time转换
datetime.datetime.fromtimestamp(10000)
>>>datetime.datetime(1970,1,12,5,46,40)
datetime.datetime.fromtimestamp(time.time())
>>>datetime.datetime(2015,2,27,11,13,0,604980)
#函数 fromtimestamp相互转换
(2)timedelta数据类型
delta = datetime.timedelta(days,hours,minutes,seconds)
#返回以(天,秒,微秒)来表示
delta.total_seconds()
#返回以秒计算的时间
#timedelta表示一段时间,并且可以计算
(3)将datetime对象转换为字符串

datetime.strftime()函数将datetime对象转换为格式化的字符串

datetime.strptime()函数将格式化的字符串转换为datetime对象

strftime指令
strftime指令 含义
%Y 带世纪的年份,如‘2014’
%y 不带世纪的年份,‘00’-‘99’
%m 数字表示的月份,‘01’-‘12’
%B 完整的月份,‘July’
%b 简写的月份,‘Jul’
%d 一月中的第几天,‘01’-‘31’
%j 一年中的第几天,‘001’-‘366’
%w 一周中的第几天,‘0’(周日)-‘6’(周六)
%A 完整的周几,‘Monday’
%a 简写的周几,‘Mon’
%H 小时(24h),'00'-'23'
%h 小时(12h),‘01’-‘12’
%M
%S
%p ‘AM/'PM’
%% %
dt = datetime.datetime(2017,11,12,11,12,0)
dt.strftime('%Y/%m/%d %H:%M:%S)                   #datetime 到字符串
datetime.datetime.strptime('2015/10/21 16:29:00' , '%Y/%m/%d %H:%M:%S')   #格式化字符串到datetime对象

1.3 多线程

(1)多线程启动
import threading
#创建一个Thread对象
threadobj = threading.Thread(target = fx)     #fx为想要以第二线程启动的函数名称
#第二个线程开始
threadobj.start() 
(2)多参数
#常规参数作为一个列表传给args,关键字参数作为一个字典传给kwargs
threadobj = threading.Thread(target = print , args =['cats','dog','rabbit'] , kwargs = {'sep}':'&')
threadobj.start()
>>>'cats&dog&rabbit

注意:多线程可能会由于同时读写变量,导致相互干扰产生并发问题,当创建一个新的Thread对象时,要确保目标函数只使用该函数中的局部变量,从而避免并发问题。

1.4 从python启动其他程序

import subprocess
calobj= subprocess.Popen('C:\\Windows\\System32\\calc.exe')
#exe的存放地址,返回一个Popen 对象

Popen对象有两个方法:POLL方法和WAIT方法

calobj.poll():若此进程在调用poll方法时仍在执行,则返回None,若进程终止:返回0为无错终止,返回1则为错误导致终止

calobj.wait():将阻塞,直到启动的进程终止(希望你的程序暂停,知道用户完成其他程序)

Popen的命令行参数:想Popen穿第一个列表,第一个字符是可执行程序名,后续字符串是该程序启东市,传递给该程序的命令行参数。

subprocess.Popen(['C:\\Windows\\notepad.exe'.'C:\\'hello.txt'])

2.实例应用

2.1 多线程下载XKCD线程

2018/3/21  19:09
import threading,requests,bs4,osos.makedirs('XKCD',exist_ok = True)#定义下载函数
def downloadxkcd(startcomic , endcomic):for urlnum in range(startcomic,endcomic):print('Downloading comics %d'%urlnum)res = requests.get('https://xkcd.com/'+str(urlnum)+'/')res.raise_for_status()soup = bs4.BeautifulSoup(res.text)comicelem = soup.select('#comic img')if comicelem == None:print("Could't find the image")else:comicurl = comicelem[0].get('src')#下载图片print('Downloading image from %s'%comicurl)res = requests.get('https:'+comicurl)res.raise_for_status()#保存到当地imagefile = open(os.path.join('xkcd',os.path.basename(comicurl)),'wb')for chunk in res.iter_content(100000):imagefile.write(chunk)imagefile.close()#创建并启动线程
downloadthreads = []
for i in range(0,1400,100):downloadthread = threading.Thread(target= downloadxkcd , args= (i,i+99))downloadthreads.append(downloadthread)downloadthread.start()#等待所有进程结束
for download in downloadthreads:download.join()
print('Done')

2.2 简单倒计时

# 2018/3/21  19:04
import time,subprocesstotaltime = 10
while totaltime > 0 :print(totaltime)time.sleep(1)totaltime -= 1subprocess.Popen(['start','alarm.wav'],shell= True) 

3.课后习题

3.1 美化的秒表

# 2018/3/21  19:40
import time
#显示用户指令
print("Press Enter to begin ,then press Enter to stop ,press ctrl+c to quit")
input()
print('Started')
starttime = time.time()
lasttime = starttime
lapnum = 1#记录并打印单圈时间
try:while True:input()laptime = round(time.time()-lasttime,2)totaltime = round(time.time() - starttime , 2)print('Lap # %s: %s (%s)' %(lapnum,str(totaltime).rjust(8),str(laptime).rjust(8)),end='')lapnum += 1lasttime = time.time()
except KeyboardInterrupt:print('\nDone')#注:在pycharm中运行,输入ctrl-c 程序停不下来,不过在CMD中运行可以停下

3.2 计划的web漫画下载(检查漫画更新模块不会)

在按规定的时刻检查是否有漫画更新,有的话进行下载。这里用到了schedule模块,以运行计算器为例:

import schedule,subprocessdef job():subprocess.Popen('C:\\Windows\\System32\\calc.exe')schedule.every().day.at("20:41").do(job)   #在每一天的规定时刻运行job
while True:schedule.run_pending()           #运行所有可以运行的任务

Python让繁琐工作自动化——chapter15 保持时间、计划任务和启动程序相关推荐

  1. python—让繁琐工作自动化

    python,在占领国一段时间的朋友圈,是关于编程的东西.大都是是扫码进入学习群之类的东西.只是不知道哪些当时刷圈的小伙伴们学的怎么样了,大致也有一两个月的时间. 为什么提起这个,因为最近也看到一些p ...

  2. python自动化办公入门书籍推荐-好书推荐 | Python 如此神奇,让繁琐工作自动化...

    原标题:好书推荐 | Python 如此神奇,让繁琐工作自动化 Python 如此神奇,让繁琐工作自动化 编程的威力 如今,人们面临的大多数任务都可以通过编写计算机软件来完成. Al Sweigart ...

  3. python 复制文件并重命名_好书推荐 | Python 如此神奇,让繁琐工作自动化

    优质文章,第一时间送达! Python 如此神奇,让繁琐工作自动化 编程的威力 如今,人们面临的大多数任务都可以通过编写计算机软件来完成. Al Sweigart 的室友曾经只花了几个小时,就写出了一 ...

  4. Python程序员的圣经——《Python编程快速上手:让繁琐工作自动化》尾末附下载地址

    一.前言 如今,人们面临的大多数任务都可以通过编写计算机软件来完成.Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.通过Python编程,我们能够解决现实生活中的很多任务. 今天给 ...

  5. python编程快速上手 让繁琐工作自动化 豆瓣_2019年,这些豆瓣评分9.0以上的8本程序员好书你都知道吗?...

    豆瓣这些9.0以上的高评分程序员好书你都知道有哪些吗?小编去豆瓣看了一下,推荐这8本最适用的程序员好书给你. 1.UNIX环境高级编程(第3版)(豆瓣评分9.6)UNIX编程圣经 与Linux相结合的 ...

  6. python自动化办公入门书籍-Python如此神奇,让繁琐工作自动化 (文中含Python基础)...

    原标题:Python如此神奇,让繁琐工作自动化 (文中含Python基础) "你在2个小时里完成的事,我们3个人要做两天."21世纪早期,我的大学室友在一个电子产品零售商店工作.商 ...

  7. python经典书记必读:Python编程快速上手 让繁琐工作自动化

    所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/69/ 来源:python黑洞网,专注 ...

  8. 《Python编程快速上手——让繁琐工作自动化》第2版的中文版上市了

    第2版基于Python3.X重磅升级,更新内容超30%,不仅更新了众多项目案例,还加强了立体化学习体验,增加了随书视频.在线编程练习环境和社群互助学习体验. 这本书成功破圈编程界,为零基础.从未接触过 ...

  9. Python编程快速上手,让繁琐工作自动化

    大家好,我是辰哥(文末送书) 自学编程是不少人的选择,在著名的软件开发领域问答网站stackoverflow上,直接搜索learn programming可以得到47000多个回答,教我们如何学习某种 ...

  10. Python编程快速上手,让繁琐工作自动化(附下载)

    今天给大家分享一份Python程序员的圣经--<Python编程快速上手:让繁琐工作自动化>.这是本面向实践的Python编程实用指南. 目录 第一章 Python基础 第二章 控制流 第 ...

最新文章

  1. PAT甲级1001.A+B Format(20)
  2. POJ1018贪心(多路归并的想法)
  3. ML之SVM:基于sklearn的svm算法实现对支持向量的数据进行标注
  4. server多笔记录拼接字符串 sql_Java拼接“1亿行字符串”你会遇到什么问题?
  5. 扩展GridView控件——为内容项添加拖放及分组功能
  6. python逻辑量有什么_Python中的逻辑运算符有什么?
  7. Java MathContext类| hashCode()方法与示例
  8. 关于打印 毕业设计资料
  9. fiddler中文乱码解决方案
  10. 中兴E1630拆机,MTK第一款AX3000(MT7916)
  11. 洛谷 P1725 琪露诺 题解
  12. 计算机中职作文,中职作文题目
  13. C#中Dev配色修改
  14. 如何删除word中页眉的横线
  15. 天池-金融风控训练营-task5-模型融合
  16. 如何看待哔哩哔哩(B站)的后端代码主仓库被上传至了GitHub?
  17. 普通本科,开发一周年纪念日—-赠给自己的礼物
  18. 面试通过后如何拒绝HR拿offer
  19. Simbec-Orion Group采用甲骨文电子临床云套件简化临床试验管理过程
  20. Scratch软件编程等级考试二级——20200913

热门文章

  1. 稀疏矩阵与 spdiags函数图解
  2. 在vue中实现锚点定位功能
  3. 主引导扇区(MBR)释疑
  4. 与用户交互、格式化输出、基本运算符
  5. linux中常见的文件操作命令
  6. javascript 正则表达式小案例
  7. SQL 宝典(本人总结供学习使用)
  8. 2009年3月全国计算机等级考试二级Java笔试试题及答案
  9. 运用ENVI bandmath对多波段进行计算
  10. ENVI实验教程(7)实验七、遥感影像变化检测