• Python 编程快速上手 第十五章 保持时间,计划任务和启动程序


    前言

    这一章节的主要内容是:

    1. 处理时间类型的数据(使用python 的两个模块: time 和 datetime 来处理)
    2. 创建多个线程 (使用 threading 模块来创建多个线程)
    3. 进行多个进程(使用 subprocess 模块来启动其他应用程序)

    谈谈 time 模块

    time 模块有两个方法最有用,time.time() 和 time.sleep()

    关于 time.time() 这个函数

    Unix 纪元:1970年1月1日0点
    功能:time.time()的返回值是 Unix 纪元的那一刻与 time.time() 被调用的那一刻之间的秒数。

    关于 time.sleep() 这个函数

    功能:让程序暂停
    格式:time.sleep(1),其中()内为让程序暂停的时间。

    使用 round() 进行四舍五入

    格式:round(x,y)
    功能:x 是要进行四舍五入的数字,y 是小数点后几位,是一个可选值,默认情况下四舍五入为整数。

    谈谈 datetime 模块

    datetime 模块有两个可以使用的数据类型: datetime 和 timedelta.

    关于 datetime.datetime()

    格式:

    datetime.datetime(2015, 10, 21, 16, 29, 0)

    功能:

    与 time.time() 显示时间戳不同,datetime.datetime() 表示具体的日期,其中的参数代表:年、月、日、时、分、秒。

    其他:

    • datetime.datetime.now():返回一个 datetime object, 它包含了当前时刻的各种 datetime 属性。
    • datetime.datetime.fromtimestamp():接受一个时间戳,返回这个时间戳的 datetime 对象。
    • 使用 strftime() 作用在一个 datetime 对象上,可以得到定制的格式化字符串。
    • strptime() 的工作与 strftime() 的工作相反。

    关于 datetime.timedelta()

    格式:

    delta =datetime.timedelta(days=11, hours=10, minutes=9 ,seconds=0)

    功能:

    它接受 microseconds, milliseconds, seconds, minutes, hours, days, weeks 作为参数,用于表示一段时间。

    其他:

    • 一个 datetime 对象将时间分别储存在天、秒、微妙中。
    • delta.total_seconds() 这个方法返回这个时间段的总共的秒数。
    • str(delta),返回一个比较易读的字符串。
    • 通过‘+’,‘-’ 进行 datetime 对象和 timedelta 对象的运算
    • 使用‘*’,’/‘可以是 timedelta 乘以或除以一个整数或浮点数。

    谈谈多线程和 threading 模块

    多线程指的是一个程序能够同时进行多处代码。创建,使用一个新线程需要用到 threading 模块。

    关于创建新的 Thread

    格式: threadObj = threading.Thread(target=nameOfFunction)
    功能:创建一个 Thread 对象,其中 target 为其参数,它的 value 是要执行的函数的名字。

    使用新的线程

    格式:threadObj.start()

    创建 Thread 对象时传入的参数

    常规参数:args,数据类型为列表
    关键字参数: kwargs, 数据类型为字典

    谈谈进程 subprocess 模块

    进程:

    进程指的是一个应用程序的多个实例;进程之间相互独立,不能直接读写另一个进程的变量;一个进程可以包含多个线程。
    使用 subprocess 模块中的 Popen() 函数,可以打开其他进程,即打开应用程序

    使用 subprocess.Popen() 打开其他应用程序

    格式(在 Mac OS 上):subprocess.Popen(['open','/Application/Calculator.app/'])





  • 相关阅读:
    [POJ1811]Prime Test
    Pollard-rho算法[因子分解算法]
    Miller-Rabin算法
    [POJ2886]Who Gets the Most Candies?
    Failed to connect to raw.githubusercontent.com port 443
    MAC安装flutter开发环境
    Jenkins自动化打包(Gitlab)并上传蒲公英
    Jenkins中插件下载失败的解决办法
    iOS开发~防止navigation多次push一个页面
    Jenkins 更新 jenkins.war的方法
  • 原文地址:https://www.cnblogs.com/FBsharl/p/10305661.html
Copyright © 2020-2023  润新知