常用模块

re模块


说明:在pyhton中要想使用模块,必须借助模块,re就是其中之一

findall,search,match方法的对比:

方法 查找内容 返回值 无数据 结果空group()
re.findall 根据正则匹配除所有符合条件的数据 对象列表 空列表 无此方法
re.search 根据正则匹配到一个符合条件的就结束 结果对象 None 直接报错
re.match 根据正则从头开始匹配(必须在开头匹配上) 结果对象 None 直接报错
案例:正则实战案例
#  利用正则爬取红牛所有的分公司信息:http://www.redbull.com.cn/about/branch
import re
with open(r'data', 'r', encoding='utf8') as f:
    res = f.read()
    company_name = re.findall('<h2>(.*?)</h2>',data) # data里面存放的是网页源代码
    print(company_name)

collections模块

# 该模块中提供了一些高级模块
1.具名元组	namedtuple
结构:namedtuple('名称',[名字1,名字2,……,名字n])  # 名字间用逗号隔开
	 namedtuple('名称',[名字1 名字2 名字3 …… 名字n]) # 名字间用空格隔开

定义:point = namedtuple('肤色','黄种人 黑人 白人') 
    # '黄种人 黑人 白人'也可以写在列表里,用逗号隔开
传值:res = point('小明','jack','Tom')
返回值:print(res)  # 肤色(黄种人='小明', 黑人='jack', 白人='Tom')
取值:print(res.黄种人) """千万不要加引号,一加就错了"""

2.双端队列	deque
    from collections import deque
    l1 = deque([1, 3, 5, 6])
    res = l1.append(333)
    l1.appendleft(22)
    print(l1)
    print(l1.pop())
    print(l1.popleft())
3.有序字典	OrderedDict
4.默认值字典	defaultdict	
5.计数器: Counter # 统计字符串中每个元素的出现的个数
    from collections import Counter
    res = 'hgjkashkjasdhgkjghnh'
    res1 = Counter(res)
    print(res1)  
    # Counter({'h': 5, 'g': 3, 'j': 3, 'k': 3, 'a': 2, 's': 2, 'd': 1, 'n': 1})

queue

队列	queue
    import queue
    q = queue.Queue()  # 初始化队列
    q.put('1')		  # 存值
    q.put('2')
    q.put('3')
    print(q.get())	  # 取值
    print(q.get())
    print(q.get())
    print(q.get())	   # 值取没了就会原地等待
	"""满足先进先出的原则"""

time模块

1.时间的三种表现形式:
<1> 时间戳:以秒数的形式呈现   time.time()  # 1637830736.696676
	
<2> 格式化时间:用来给人看的   
time.strftime('%Y-%m-%d')		  # 2021-11-25
time.strftime('%Y-%m-%d %H:%M:%S') # 2021-11-25 11:48:34
time.strftime('%Y-%m-%d %X')	   # 2021-11-25 11:48:34

<3> 结构化时间:用来给机器看的   time.localtime()
 # time.struct_time(
    tm_year=2021, 
    tm_mon=11, 
    tm_mday=25,
    tm_hour=16, 			
    tm_min=59, 
    tm_sec=30, 
    tm_wday=3,
    tm_yday=329, 
    tm_isdst=0)    

5.三种表现形式之间的转换
	时间戳>>>结构时间: time.gmtime(时间戳时间)

datetime模块

# datetime.date(年,月,日)  				
date = datetime.date(2020, 11, 25)			 # 2020-11-25

# datetime.date.today()系列       
res = datetime.date.today()			         # 2021-11-25

# datetime.datetime.today()系列
res1 = datetime.datetime.today()			# 2021-11-25 16:28:53.862682
res2 = datetime.datetime.today().year		  # 2021
res3 = datetime.datetime.today().month		  # 11
res4 = datetime.datetime.today().day	      # 25
res5 = datetime.datetime.today().weekday()     # 3 (星期是0-6,周一是0)
res6 = datetime.datetime.today().isoweekday()  # 4 (星期是1-7,周一是1)

# datetime.timedelta(days=8)      			# 8 days, 0:00:00
	""" 可进行运算:
			日期对象 = 日期对象 +/- timedelta对象
	         timedelta对象 = 日期对象 +/- 日期对象 """

# 其他
res7 = datetime.datetime.now()				# 2021-11-25 16:28:53.862681
res8 = datetime.datetime.utcnow()			# 2021-11-25 08:28:53.862681
posted @ 2021-11-25 21:22  recordlife  阅读(80)  评论(0编辑  收藏  举报