19 几个常用库

作者: 卅月 | 来源:发表于2018-08-09 22:25 被阅读26次

1.time模块

主要包含处理年月日时分秒对应的时间(着重时分秒)
首先引入时间戳的概念:时间戳就是从格林尼治时间(1970年1月1日0点0分0秒)到当前时间的时间差(单位是秒)
引入时间戳的作用:

  • 1.存时间以时间戳的形式去存,可以节省内存空间(一个浮点数的内存是4/8个字节,存一个字符串一个字符占2个字节)
  • 2.自带对时间加密的功能(加密更方便)
(1)获取时间
 print(time.time(), type(time.time()))

#输出
1533823498.4562821 <class 'float'>
(2).将时间戳转换成struct_time

参数seconds:
a.不传参,就是将当前时间对应额时间戳转换成struct_time
b.传参,就是将制定的事件转换成struct_time

time1 = time.localtime()
print(time1)

#输出
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=9, tm_hour=22, tm_min=4, tm_sec=58, tm_wday=3, tm_yday=221, tm_isdst=0)

struct_time的结构:

    tm_year:年
    tm_mon:月
    tm_mday:日
    tm_hour:时
    tm_min:分
    tm_sec:秒
    tm_wday:星期(0-6 --> 周一 - 周天)
    tm_yday:当前是当年的第几天
    tm_isdst:是否是夏令时

实例:

struct1 = time.localtime(+1)
    print(struct1.tm_year, struct1.tm_mon, struct1.tm_mday)

# 1970 1 1
(3)将struct_time转换成时间戳
strc = time.strptime('2018-12-31 23:30:40', '%Y-%m-%d %H:%M:%S')
    time1 = time.mktime(strc)       # 转换成时间戳

    # 时间加一个小时
    time1 += 60*60
    print('==', time.localtime(time1))

#  == time.struct_time(tm_year=2019, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=30, tm_sec=40, tm_wday=1, tm_yday=1, tm_isdst=0)

(4) 时间格式转换

  • strftime(时间格式,时间) ----->> 将时间以指定的格式转换成字符串
  • strptime(需要转换的字符串,时间格式) ----->> 将时间字符串转换成相应的struct_time
time_str = time.strftime('%Y-%m-%d %H-%M-%S', time.localtime())
    print(time_str)
struct_time = time.strptime('today is 2018 year 8 mon 5 day', 'today is %Y year %m mon %d day')
    print(struct_time)

#  2018-08-09 22-09-40
#  time.struct_time(tm_year=2018, tm_mon=8, tm_mday=5, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=217, tm_isdst=-1)
(5)延迟

使用sleep(second)使程序暂时阻塞,second单位为s,即:程序延迟n秒后再执行sleep下面的语句

2.itchat第三方库

这是一个基于网页版微信的API,用较少的代码便可实现微信里的各种功能,爬取各种数据(登录前提下).

import itchat

if __name__ == '__main__':
    # 1.登录
    itchat.auto_login(hotReload=True)
    all_friend = itchat.get_friends()
    name = []
    addr = []
    all_addr = []
    for item in all_friend:
        print(item)
        name.append(item['NickName'])
        addr.append(item['City'])
        if item['Province'] == '四川':
        # all_addr.append({item['NickName'], item['City']})
            all_addr.append({'微信id':item['UserName'].ljust(65, ' '), 'name':item['NickName'].center(5, ' '), 'city':item['City'].rjust(2, ' '), '备注':item['RemarkName']})
    print(name)
    print(addr)
    # print(all_addr)
    for i in all_addr:
        print(i)

以下是简单搜集了截取了部分微信好友(四川人)的信息


TIM截图20180809222508.png

相关文章

网友评论

    本文标题:19 几个常用库

    本文链接:https://www.haomeiwen.com/subject/nyzcbftx.html