python3发布时间_Python3优雅操作-时间处理与定时任务

无论哪种编程语言,时间肯定都是非常重要的部分,今天来看一下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学习交流q-u-n-【 784758214 】内有安装包和学习视频资料免费分享,好友都会在里面交流,分享一些学习的方法和需要注意的小细节,每天也会准时的讲一些项目实战案例。希望可以帮助你快速了解Python、学习python

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434171.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cubieboard安装Debian在Nand中

本教程所附带系统为Server版,不带显示,所以插显示器是不会有任何画面出现的。另外所提供系统为 http://linux-sunxi.org 所推荐(linux-sunxi.org的权威毋庸置疑),非CB官方提供,但CB官方并未提供相关CB所用Server版,而且…

strlwr,strupr函数

函数原型&#xff1a;extern char *strlwr(char *str) extern char *strupr(char *s) 参数说明&#xff1a;str为要转换的字符串。 所在库名&#xff1a;#include <string.h> 函数功能&#xff1a;将字符串str中的大(小)写字母转换成为小(大)写字母&#xff…

为Cubieboard打造完美Debian系统

作为Cubieboard的用户&#xff0c;最头疼的问题就是没有一个比较好的系统&#xff0c;本文将帮你解决这个问题。 首先需要感谢网站http://guillaumeplayground.net/的作者制作了这个系统。不过由于是定制给mele的&#xff0c;所以在Cubieboard上运行需要做一些优化调整。 系统…

python中的类怎样理解_理解Python数据类:Dataclass fields 的概述(下)

原标题 Understanding Python Dataclasses?—?Part 2 &#xff0c;作者为 Shikhar Chauhan 。这是 Python 最新的 Dataclasses 系列的第二部分内容。在第一部分里&#xff0c;我介绍了 dataclasses 的一般用法。这篇主要介绍另一个特征&#xff1a;dataclasses.field。我们已…

java 图形处理库_java中处理图片的类库

拷贝一下代码&#xff0c;以后备用&#xff1a;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servle…

Hibernate @OneToMany等注解设置查询过滤条件等

如实体PdOrg对象中有users对象&#xff0c;数据库user表有字段DEL_FLAG(0&#xff1a;删除&#xff1b;1&#xff1a;未删除)&#xff1a; private List<User> users new ArrayList<User>(); 生成get、set方法&#xff1a; OneToMany(fetchFetchType.LAZY, mappedB…

西部数码域名解析到阿里云_西部数码云主机好吗 稳定性如何

随着云计算技术的不断发展&#xff0c;我国云计算市场的经济效益也在日渐扩大&#xff0c;各个云服务商之间的竞争异常激烈。在这种环境下&#xff0c;备受人们关注的云服务企业主要呈现两大类&#xff0c;一是互联网巨头背景的阿里云、腾讯云等&#xff1b;二是以西部数码为代…

ffmpeg yasm not found, use --disable-yasm for a crippled build

yasm是汇编编译器&#xff0c;因为ffmpeg中为了提高效率用到了汇编指令&#xff0c;比如MMX和SSE。解决这个问题方面有两个&#xff1a;1、在网上下载一个yasm.exe并安装在mingw/bin下面&#xff0c;编译代码时你注意看&#xff0c;会发现asm后缀的文件用的编译器是yasm&#x…

java native 接口_Java本地接口--Java Native Interface (JNI)

一、方法介绍java native方法是指本地方法&#xff0c;当在方法中调用一些不是由java语言写的代码或者在方法中用java语言直接操纵计算机硬件时要声明为native方法。java中&#xff0c;通过JNI(Java Native Interface,java本地接口)来实现本地化。Native方法一般用于两种情况&a…

【转】android程序连接网络出现android.os.NetworkOnMainThreadExceptionat

错误&#xff1a; android.os.NetworkOnMainThreadException at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099) ...... 原因&#xff1a;是涉及到url操作的时候&#xff0c;访问网络不能在主程序中运行 解决&#xff1a;参考【http://geeksu…

mysql8.0.22安装步骤图解_MySQL server 5.5的安装 步骤图解

作者&#xff1a;极客小俊 一个专注于web技术的80后我不用拼过聪明人&#xff0c;我只需要拼过那些懒人 我就一定会超越大部分人!知乎极客小俊&#xff0c;官方首发原创文章还有人用老版本的mysql 5.5吗&#xff1f;&#xff1f; 如果有的话 并且不会安装的小白看下面的步骤图吧…

win7下ffmpeg编译动态链接库整理

1.写在ffmpeg编译前 关于ffmpeg的编译过程google一搜&#xff0c;一大堆&#xff0c;ffmpeg编译真的有那么难么&#xff1f;在我编译成功后回头来看&#xff0c;网上的资料过多&#xff0c;反而使自己走了很多的弯路。即便有些楼主亲自测试后编译成功了&#xff0c;由于受机器…

inputstream java_Java实现inputstream流的复制

获取到一个inputstream后&#xff0c;可能要多次利用它进行read的操作。由于流读过一次就不能再读了&#xff0c;而InputStream对象本身不能复制&#xff0c;而且它也没有实现Cloneable接口&#xff0c;所以得想点办法。实现思路&#xff1a;1、先把InputStream转化成ByteArray…

wzctool工具使用详解

Wzctool是WinCE一个比较小巧实用的无线Wifi配置小工具&#xff0c;借助命令行调用该程序能够非常简单地设置wifi的相应参数&#xff0c;能够在一定程度上避免书写代码的繁琐之举。 这个工具是在编译系统的时候&#xff0c;添加Wifi组件后自动生成的。如果用户直接进到Platform…

spring boot 入门_玩转springboot2.x之快速入门开山篇

Spring Boot简介Spring Boot的目的在于创建和启动新的基于Spring框架的项目。Spring Boot会选择最适合的Spring子项目和第三方开源库进行整合。大部分Spring Boot应用只需要非常少的配置就可以快速运行起来。Spring Boot是伴随着Spring4.0诞生的&#xff0c;旨在简化开发。Spri…

详细介绍Qt,ffmpeg 和SDl 教程之间的联系

Qt与 ffmpeg 与 SDl 教程是本文要介绍的内容&#xff0c;从多个角度介绍本文&#xff0c;运用了qmake&#xff0c;先来看内容。1. 注释 从“ #” 开始&#xff0c;到这一行结束。2. 指定源文件 1. SOURCES *.cpp 对于多源文件&#xff0c;可用空格分开&#xff…

如何生成JAR包

JDK中自带了jar命令&#xff0c;可以生成jar包&#xff0c;在命令行输入jar可以看到用法。 E:\20121008>jar用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...选项包括&#xff1a; -c 创建新的归档文件 -t 列出归档目录 …

java 匿名内部类 百科_java匿名内部类具体概念是什么,在什么地方用到?

展开全部java匿名内部类一定是在new的后面&#xff0c;用其隐含实现一个接口或实现一个类&#xff0c;没有类名&#xff0c;根据多态&#xff0c;我们e69da5e887aa62616964757a686964616f31333337613863使用其父类名。因他是局部内部类&#xff0c;那么局部内部类的所有限制都对…

python 元组 列表 字典区别_python编程:常用的数据结构之字典的方法总结,和列表和元组区别...

字典是一种键&#xff1a;值的形式&#xff0c;我们前面分享的文章学习了列表[],元祖&#xff08;&#xff09;&#xff0c;字典是由{}引起来的&#xff0c;列表的键对应的是列表的下标&#xff0c;而字典的值对应的是字典的键&#xff0c;我们可以通过字典的键来获取字典的值 …

ubuntu11.10中配置OGRE1.8

在这里提到的版本有点低&#xff0c;但对于Ubuntu11.10Ogre1.8照样适用。 对于Ubuntu 9.10及以上版本&#xff1a; 安装编译器及配置工具&#xff1a; sudo apt-get install build-essential automake libto 安装必须的依赖&#xff1a; sudo apt-get install libfreetype6-dev…