Python技术迷

常用的Python 标准库有哪些?

哎,昨晚十一点多我还在客厅边啃西瓜边帮小李远程搞他那个破Python项目,说起来,Python用得多了,标准库你不自觉就摸熟了一大半,真有点像过日子——啥都离不开那几个家伙。有人私聊问我:你平时写Python常用哪些标准库?行,那我就趁热随手聊几句,别指望啥系统讲解哈,就当大家一起唠嗑。

先说点最常见的哈,比如你搞数据文件的,os和sys简直就是日常生活用品。像我改代码遇到路径老出错,那就直接上os.path.join(),不用再自己瞎拼字符串了。举个小栗子,像下面这样:

import os
print(os.path.join('/home', 'dongge', 'test.txt'))  # 这输出:/home/dongge/test.txt

sys也很有意思,主要是用来和解释器打交道,啥时候程序里要拿命令行参数,sys.argv就来了。还有调试时偶尔用下sys.exit(0),一键终止,谁用谁知道。

再说说处理时间的,你别看datetime长得老成,功能还真全。平时要算两个时间差,格式化时间戳啥的,一把梭哈都靠它。像:

from datetime import datetime
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))

有时候我懒得记太多方法,就喜欢把时间戳和人类看得懂的时间互相转来转去,time库也能凑合着用。

然后啊,正则那个re,兄弟们你们写爬虫或者文本提取都绕不开它。比如手机号码啥的,用个正则一行解决:

import re
text = "我的电话是13812345678,记一下"
match = re.search(r'1\d{10}', text)
if match:
    print(match.group())

再比如,数据格式的,像json和csv,平时要存点数据,不管你是写配置还是搞接口,肯定绕不开这俩。像我做个小工具,数据就json.dump写到文件里,或者json.loads一把读回来,简单粗暴:

import json
data = {'name': '东哥', 'age': 18}
with open('test.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False)

csv也一样,搞报表、导入导出的时候,常常一行代码就能整出个csv文件。

还有collections,讲真,这个老少咸宜啊,尤其是Counter和defaultdict,统计、分组、计数,巨爽。有一阵我项目里全是Counter,不用还真不适应:

from collections import Counter
arr = ['apple', 'banana', 'apple']
count = Counter(arr)
print(count)

至于网络相关,requests不是标准库,不过自带的urllib、http.client这些其实也都能用。只不过写起来繁琐,反正标准库就那样,如果要兼容性强的,老老实实用标准库也是正道。

要是跟多线程、多进程相关的,threading和multiprocessing,其实不少人都用过。像我之前写下载脚本,分多线程开下文件,threading.Thread就上了,虽然有时候卡在GIL那儿,但轻量级任务很香:

import threading
defhello():
    print("hi")
t = threading.Thread(target=hello)
t.start()
t.join()

其实说到底,Python标准库就是啥都给你备着,没事多翻翻官方文档,真遇到啥活儿,基本上你不用装三方库都能勉强顶一阵。你像随机数的random、临时文件的tempfile、系统操作的shutil,这都不用多说,日常老用。

哦,对了,搞单元测试的unittest,写着写着代码,早晚都得走到这一步,自动化、测试驱动开发,离不开。写法跟Java那边JUnit类似,入门挺快的。

-END-

我为大家打造了一份RPA教程,完全免费:https://www.songshuhezi.com/rpa.html

🔥虎哥私藏精品🔥

虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领