Python3中常用的处理时间和实现定时任务的方法的介绍_python

无论哪种编程语言,时间肯定都是非常重要的部分,今天来看一下python如何来处理时间和python定时任务,注意咯:本篇所讲是python3版本的实现,在python2版本中的实现略有不同,有时间会再写一篇以便大家区分。
1.计算明天和昨天的日期
 

#! /usr/bin/env python
#coding=utf-8
# 获取今天、昨天和明天的日期
# 引入datetime模块
import datetime
#计算今天的时间
today = datetime.date.today()
#计算昨天的时间
yesterday = today - datetime.timedelta(days = 1)
#计算明天的时间
tomorrow = today + datetime.timedelta(days = 1)
#打印这三个时间
print(yesterday, today, tomorrow)

2.计算上一个的时间

方法一:
 

#! /usr/bin/env python
#coding=utf-8
# 计算上一个的时间
#引入datetime,calendar两个模块
import datetime,calendar

last_friday = datetime.date.today()
oneday = datetime.timedelta(days = 1) 

while last_friday.weekday() != calendar.FRIDAY:
 last_friday -= oneday 

print(last_friday.strftime('%A, %d-%b-%Y'))

方法二:借助模运算寻找上一个星期五
 

#! /usr/bin/env python
#coding=utf-8
# 借助模运算,可以一次算出需要减去的天数,计算上一个星期五
#同样引入datetime,calendar两个模块
import datetime
import calendar 

today = datetime.date.today()
target_day = calendar.FRIDAY
this_day = today.weekday()
delta_to_target = (this_day - target_day) % 7
last_friday = today - datetime.timedelta(days = delta_to_target) 

print(last_friday.strftime("%d-%b-%Y"))

3.计算歌曲的总播放时间

#! /usr/bin/env python
#coding=utf-8
# 获取一个列表中的所有歌曲的播放时间之和
import datetime 

def total_timer(times):
 td = datetime.timedelta(0)
 duration = sum([datetime.timedelta(minutes = m, seconds = s) for m, s in times], td)
 return duration 

times1 = [(2, 36),
   (3, 35),
   (3, 45),
   ]
times2 = [(3, 0),
   (5, 13),
   (4, 12),
   (1, 10),
   ] 

assert total_timer(times1) == datetime.timedelta(0, 596)
assert total_timer(times2) == datetime.timedelta(0, 815) 

print("Tests passed.\n"
  "First test total: %s\n"
  "Second test total: %s" % (total_timer(times1), total_timer(times2)))

4.反复执行某个命令
 

#! /usr/bin/env python
#coding=utf-8
# 以需要的时间间隔执行某个命令 

import time, os 

def re_exe(cmd, inc = 60):
 while True:
  os.system(cmd);
  time.sleep(inc) 

re_exe("echo %time%", 5)

5.定时任务

#! /usr/bin/env python
#coding=utf-8
#这里需要引入三个模块
import time, os, sched 

# 第一个参数确定任务的时间,返回从某个特定的时间到现在经历的秒数
# 第二个参数以某种人为的方式衡量时间
schedule = sched.scheduler(time.time, time.sleep) 

def perform_command(cmd, inc):
 os.system(cmd) 

def timming_exe(cmd, inc = 60):
 # enter用来安排某事件的发生时间,从现在起第n秒开始启动
 schedule.enter(inc, 0, perform_command, (cmd, inc))
 # 持续运行,直到计划时间队列变成空为止
 schedule.run() 

print("show time after 10 seconds:")
timming_exe("echo %time%", 10)

6.利用sched实现周期调用
 

#! /usr/bin/env python
#coding=utf-8
import time, os, sched 

# 第一个参数确定任务的时间,返回从某个特定的时间到现在经历的秒数
# 第二个参数以某种人为的方式衡量时间
schedule = sched.scheduler(time.time, time.sleep) 

def perform_command(cmd, inc):
 # 安排inc秒后再次运行自己,即周期运行
 schedule.enter(inc, 0, perform_command, (cmd, inc))
 os.system(cmd) 

def timming_exe(cmd, inc = 60):
 # enter用来安排某事件的发生时间,从现在起第n秒开始启动
 schedule.enter(inc, 0, perform_command, (cmd, inc))
 # 持续运行,直到计划时间队列变成空为止
 schedule.run() 

print("show time after 10 seconds:")
timming_exe("echo %time%", 10)

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索python
python实现定时任务、python 常用模块介绍、python 定时任务、python 定时器、python 定时执行,以便于您获取更多的相关知识。

时间: 2024-11-10 00:55:31

Python3中常用的处理时间和实现定时任务的方法的介绍_python的相关文章

Excel表格中常用的三种数据转置的方法

  Excel表格中常用的三种数据转置的方法          如下图所示,需要将A2:B9的内容,转变为D列的样子. 思考一下,有几种方法能实现呢? 这个题目乍一看是有点难度的高大上,是不是啊? 1.VBA代码法 按Ctrl+F11,打开VBE编辑器,在代码窗口中写上以下代码: Sub run() For i = 1 To 8 Cells(2 + (i - 1) * 2, 4) = Cells(i + 1, 1) Cells(3 + (i - 1) * 2, 4) = Cells(i + 1,

js中常用的对象—数组的属性和方法

今天说一下,js中常用的内置对象--Array对象 Array常用属性: length prototype :给系统对象添加属性和方法 Array常用方法: Array.prototype.sum = function(){for(i=0;i<this.length;i++){}} 例子  代码如下 复制代码 实例1 <html> <body> <script type="text/javascript"> var mycars = new A

在Python3中使用asyncio库进行快速数据抓取的教程_python

web数据抓取是一个经常在python的讨论中出现的主题.有很多方法可以用来进行web数据抓取,然而其中好像并没有一个最好的办法.有一些如scrapy这样十分成熟的框架,更多的则是像mechanize这样的轻量级库.DIY自己的解决方案同样十分流行:你可以使用requests.beautifulsoup或者pyquery来实现. 方法如此多样的原因在于,数据"抓取"实际上包括很多问题:你不需要使用相同的工具从成千上万的页面中抓取数据,同时使一些Web工作流自动化(例如填一些表单然后取回

Python中几种操作字符串的方法的介绍_python

#! -*- coding:utf-8 -*- import string s = 'Yes! This is a string' print '原字符串:' + s print '小写:' + s.lower() print '大写:' + s.upper() print '大小写转换:' + s.swapcase() print '首字母大写:' + s.capitalize() print '每个单词首字母大写:' + s.title() #各种对齐函数 print '左对齐:' + s.

jquery中常用的函数和属性详细解析

 本篇文章主要是对jquery中常用的函数和属性进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 Dom: Attribute:属性 $("p").addClass(css中定义的样式类型); 给某个元素添加样式 $("img").attr({src:"test.jpg",title:"test Image"}); 给某个元素添加属性/值,参数是map $("input").attr({&qu

让你提前认识软件开发(18):C语言中常用的文件操作函数总结及使用方法演示代码

第1部分 重新认识C语言 C语言中常用的文件操作函数总结及使用方法演示代码           在C语言中,有关文件操作的函数多达数十种,但并非每个函数都经常会被用到.        本文对实际软件开发项目中常用的C文件操作函数的用法进行了总结,并用实际的C代码来演示了它们的用法.   1. C语言中常用的文件操作函数总结 (1) fopen 作用:打开文件. 表头文件:#include <stdio.h> 定义函数:FILE *fopen(const char *path, const ch

iOS开发中常用的数学函数

iOS开发中常用的数学函数   /*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(@"结果 %.f", pow(3,2)); //result 9 NSLog(@"结果 %.f", pow(3,3)); //result 27 //开平方运算 NSLog(@"结果 %.f", sqrt(16)); //result 4 NSLog(@"结果 %.f", sqrt(81)); //result

PHOTOSHOP中常用的四种抠图方法

最近不断有人问怎样换照片背景的问题,实际上是关于抠图的问题,把你需要的内容从照片中抠出来了,换背景就轻而易举了.现介绍四种最常用的抠图和换背景的方法,供参考: 一.如果照片的主体与背景反差较大,边沿较清楚,如下图所示,用"抽出"工具抠图最简单. 操作方法如下: 1.打开PHOTOSHOP,将该图片打开,如下图: 2.注意右下角,图层下边写的是"背景"二字,背景图片是不能处理的,用鼠标双击该"背景"图标,就弹出"新图层"窗口,显

python3中内建函数与工厂函数的关系

问题描述 python3中内建函数与工厂函数的关系 python核心编程书中提到,由于类型与类的整合,一些内建函数变为了工厂函数,两者的关系是什么 解决方案 被重新封装了通过工厂函数来创建类的实例化,可以方便修改,对外函数不变,内部由于变化不影响使用 明显的例子: Timer 定时器的工厂函数def Timer(*args **kwargs):""Factory function to create a Timer object. Timers call a function afte