Hey!学Python的小伙伴,是不是经常听到“标准库”这个词,感觉它很厉害但又不知道从哪下手?别慌!作为你的Python学习搭子,我已经把最常用、最实用的标准库模块都整理好啦!
这份速查表专为初学者设计,每个模块我都用“人话”解释,配上最常用的3-5个函数示例,还有实际应用场景。记住哦,你不用一次性全部掌握,先挑几个自己项目里用得上的,慢慢积累就行啦!
一句话简介:让你在Python里也能像在终端里一样操作文件和文件夹,跨平台无压力!
| | |
os.getcwd() | | current_dir = os.getcwd() |
os.listdir() | | files = os.listdir('.') |
os.path.join() | | path = os.path.join('folder', 'file.txt') |
os.makedirs() | | os.makedirs('data/images', exist_ok=True) |
os.path.exists() | | if os.path.exists('config.json'): |
学习搭子小贴士:os.path.join() 比手动拼接路径更安全,能自动处理不同操作系统的路径分隔符问题!
2. pathlib 模块 - 路径操作的现代方式
一句话简介:Python 3.4+ 推荐的面向对象路径操作库,代码更简洁、更直观!
| | |
Path() | | p = Path('data/file.txt') |
.exists() | | if p.exists(): |
.read_text() | | content = p.read_text(encoding='utf-8') |
.write_text() | | p.write_text('Hello!') |
.glob() | | for file in Path('.').glob('*.csv'): |
学习搭子小贴士:如果你用的是 Python 3.4+,强烈推荐用 pathlib 代替 os.path,代码会更简洁易读!
一句话简介:Python字典和JSON字符串之间的翻译官,Web开发、API调用离不开它!
| | |
json.loads() | | data = json.loads('{"name": "小明"}') |
json.dumps() | | json_str = json.dumps({'age': 20}) |
json.load() | | with open('data.json') as f: data = json.load(f) |
json.dump() | | with open('output.json', 'w') as f: json.dump(data, f) |
indent | | json.dumps(data, indent=2) |
学习搭子小贴士:记得用 indent=2 参数让输出的JSON更易读,调试时超级方便!
一句话简介:专门处理CSV格式的表格文件,和Excel数据无缝对接!
| | |
csv.reader() | | with open('data.csv') as f: reader = csv.reader(f) |
csv.writer() | | writer = csv.writer(open('out.csv', 'w')) |
csv.DictReader() | | for row in csv.DictReader(f): print(row['name']) |
csv.DictWriter() | | writer = csv.DictWriter(f, fieldnames=['name', 'age']) |
.writerow() | | writer.writerow(['Alice', 25]) |
学习搭子小贴士:用 DictReader 和 DictWriter 可以通过列名访问数据,比用索引更不容易出错!
一句话简介:处理日期、时间、时间间隔的专业工具,再也不怕时间计算了!
| | |
datetime.now() | | now = datetime.datetime.now() |
date.today() | | today = datetime.date.today() |
timedelta() | | tomorrow = today + datetime.timedelta(days=1) |
strftime() | | now.strftime('%Y-%m-%d %H:%M:%S') |
strptime() | | dt = datetime.strptime('2024-01-01', '%Y-%m-%d') |
学习搭子小贴士:记住这个格式字符串:%Y-%m-%d %H:%M:%S,能应付80%的时间格式化需求!
一句话简介:内置了各种数学函数,从基础运算到高级数学一网打尽!
| | |
math.sqrt() | | result = math.sqrt(16) # 4.0 |
math.pow() | | result = math.pow(2, 3) # 8.0 |
math.floor() | | result = math.floor(3.7) # 3 |
math.ceil() | | result = math.ceil(3.2) # 4 |
math.pi | | area = math.pi * radius**2 |
学习搭子小贴士:Python内置的 ** 运算符也能做幂运算,但 math.pow() 在处理浮点数时更精确!
一句话简介:需要随机性的地方就找它,抽奖、洗牌、模拟都靠它!
| | |
random.random() | | num = random.random() |
random.randint() | | num = random.randint(1, 10) |
random.choice() | | item = random.choice(['A', 'B', 'C']) |
random.shuffle() | | random.shuffle(my_list) |
random.sample() | | sample = random.sample(population, 3) |
学习搭子小贴士:记得先调用 random.seed() 设置随机种子,这样每次运行的结果可以复现,调试时超有用!
一句话简介:文本处理的瑞士军刀,查找、替换、验证字符串的终极工具!
| | |
re.search() | | match = re.search(r'\d+', 'abc123def') |
re.findall() | | numbers = re.findall(r'\d+', 'a1b22c333') |
re.sub() | | result = re.sub(r'\s+', ' ', text) |
re.match() | | if re.match(r'^https://', url): |
re.compile() | | pattern = re.compile(r'\d{3}-\d{4}') |
学习搭子小贴士:正则表达式虽然强大,但不要过度使用!简单的字符串操作用 str.replace()、str.split() 更简单高效!
9. collections 模块 - 增强版容器
一句话简介:Python内置数据结构的升级版,解决特定问题更高效!
| | |
Counter() | | counts = Counter(['a', 'b', 'a', 'c']) |
defaultdict() | | dd = defaultdict(list); dd['key'].append(1) |
OrderedDict() | | od = OrderedDict(); od['a'] = 1; od['b'] = 2 |
namedtuple() | | Point = namedtuple('Point', ['x', 'y']) |
deque() | | d = deque([1, 2, 3]); d.appendleft(0) |
学习搭子小贴士:Counter 是统计频次的超级利器,一行代码就能完成以前需要好几行循环的工作!
10. itertools 模块 - 迭代器工具箱
一句话简介:处理迭代器和循环的高级工具,让代码更简洁、性能更好!
| | |
itertools.chain() | | combined = chain(list1, list2, list3) |
itertools.product() | | for x, y in product(range(3), repeat=2): |
itertools.permutations() | | perms = permutations('ABC', 2) |
itertools.combinations() | | combs = combinations(range(5), 3) |
itertools.groupby() | | for key, group in groupby(data, key=lambda x: x[0]): |
学习搭子小贴士:itertools 的函数返回的是迭代器,不会一次性生成所有结果,对大数据集更节省内存!
一句话简介:获取Python解释器信息、控制程序运行环境的好帮手!
| | |
sys.argv | | script_name = sys.argv[0] |
sys.exit() | | if error: sys.exit(1) |
sys.path | | sys.path.append('/my/modules') |
sys.version | | print(f"Python {sys.version}") |
sys.stdin/stdout | | data = sys.stdin.read() |
学习搭子小贴士:sys.argv[0] 总是脚本的名称,真正的参数从 sys.argv[1] 开始哦!
一句话简介:比print更强大的日志系统,适合正式项目的调试和监控!
| | |
logging.basicConfig() | | logging.basicConfig(level=logging.INFO) |
logging.getLogger() | | logger = logging.getLogger(__name__) |
.debug()/.info() | | logger.info("程序启动") |
FileHandler() | | handler = logging.FileHandler('app.log') |
Formatter() | | formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') |
学习搭子小贴士:用 logging 替代 print,可以通过调整日志级别轻松控制输出量,调试和部署两不误!
作为你的Python学习搭子,我建议你这样使用这份速查表:
- 1. 别急着背! 先整体浏览一遍,知道每个模块大概能做什么
- 2. 项目驱动学习:做实际项目时,遇到相关需求再来查
- 3. 动手敲代码:把示例代码都自己敲一遍,理解才会深刻
- 4. 组合使用:很多模块是搭配使用的,比如
os + pathlib + json
- • Python官方标准库文档 - https://docs.python.org/3/library/index.html - 最权威、最全面
- • Python Module of the Week - https://pymotw.com/3/ - 每个模块的深度教程
- • Real Python 教程 - https://realpython.com/ - 很多实用的实战案例
最后再唠叨一句:学习编程就像搭积木,标准库就是你手边的积木块。不用一次性记住所有形状,先从搭建简单的小房子开始,慢慢你就会发现自己能搭出摩天大楼啦!
这份速查表由你的专属“Python学习搭子”整理,我们会持续更新更多实用内容!