Python—保持时间、计划任务和启动任务

1.time模块

 让Python程序能读取系统时钟的当前时间。在time模块中,time.time()和time.sleep()函数是最有用的模块。

1.1time.time()

返回值是 Unix 纪元的那一刻与 time.time() 被调用的那一刻之间的秒数。

import time
print(time.time())

运行结果

1553691989.450952 

纪元时间戳可以用于剖析代码,也就是测量一段代码的运行时间。

import time
def calc():
    p = 1
    for i in range(1,100000):
        p = p * i
    return p
startTime = time.time()
result = calc()
endTime = time.time()
print('The result is %s digit long.'%(len(str(result))))
print('运行时间为%s秒'%(endTime - startTime))

运行结果

The result is 456569 digit long.
            运行时间为2.7055039405822754秒 

1.2 time.sleep()

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

2.数字四舍五入

     使用 round() 进行四舍五入

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

import time
now = time.time()
print("未四舍五入:",now)
print("保留两位小数:",round(now,2))

运行结果

         未四舍五入: 1553692777.910951
         保留两位小数: 1553692777.91

3.datetime模块

    

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

3.1关于 datetime.datetime()

格式:

datetime.datetime(2019, 3, 27, 21, 29, 0)

功能:

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

其他:

  • datetime.datetime.now():返回一个 datetime object, 它包含了当前时刻的各种 datetime 属性。
  • datetime.datetime.fromtimestamp():接受一个时间戳,返回这个时间戳的 datetime 对象。
  • 使用 strftime() 作用在一个 datetime 对象上,可以得到定制的格式化字符串。
  • strptime() 的工作与 strftime() 的工作相反。
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2019, 3, 27, 21, 30, 43, 329479)
>>> dt = datetime.datetime(2015,10,21,16,29,0)
>>> dt
datetime.datetime(2015, 10, 21, 16, 29)
>>> dt.year,dt.month
(2015, 10)
>>> dt.minute
29

 

>>> datetime.datetime.fromtimestamp(1000000)
datetime.datetime(1970, 1, 12, 21, 46, 40)
>>> datetime.datetime.fromtimestamp(time.time())
datetime.datetime(2019, 3, 27, 21, 29, 38, 529726)

3.2关于 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 乘以或除以一个整数或浮点数。

 举例:

>>> delta = datetime.timedelta(days = 11,hours = 10 ,minutes = 9,seconds=8)
>>> delta.days
11
>>> delta.seconds
36548
>>> delta.hours
Traceback (most recent call last):
  File "", line 1, in 
    delta.hours
AttributeError: 'datetime.timedelta' object has no attribute 'hours'
>>> delta.microseconds
0

delta = datetime.timedelta() 接受的关键字为:weeks  days  hours  minutes  seconds  milliseconds microseconds 
              这些数字保存在days,seconds、microseconds

3.3暂停至特定时间

>>> import datetime
>>> import time
>>> hello2019 = datetime.datetime(2019,3,29,0,0,0)
>>> while datetime.datetime.now() < hello2019:
    time.sleep(1)

3.4 将datetime对象转换为字符串 

Python—保持时间、计划任务和启动任务_第1张图片

4. 多线程

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

关于创建新的 Thread

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

使用新的线程

格式:threadObj.start()

创建 Thread 对象时传入的参数

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

>>> import threading
>>> threadObj = threading.Thread(target=print,args=['Cat','Dogs','Frogs'],kwargs={'sep':'&'})
>>> threadObj.start()
Cat&
>>> Dogs&Frogs

 

4.1 subprocess 模块

进程:

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

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

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

你可能感兴趣的:(Python学习)