Python常用标准库
大约 2 分钟
常用标准库
import os
import shutil
import glob
import sys
import argparse # 提供了一种更复杂的机制处理命令行参数
import re # 提供正则表达式工具
import math # 提供数学函数
import random # 随机数
import statistics # 基本的统计
from urllib.request import urlopen # 从url检索数据
from datetime import date # 操作日期和时间
import zlib # 压缩库
# os库:提供了很多操作系统交互的函数
print(os.getcwd()) # 返回当前目录
print(dir(os)) # 返回由模块的所有函数组成的列表
# 调用系统命令
os.system("ls") # 可执行系统命令
# os.system("mkdir files") # 可执行系统命令
# shutil库:提供文件和目录管理接口
shutil.copyfile('file.txt', 'dataCopy.txt') # 拷贝文件,目标文件不存在时会创建
# shutil.move('dataCopy.txt','files') # 移动文件,目标文件夹中存在时会报错
# glob库:查询文件
print(glob.glob('*.py')) # ['类.py', '输入输出.py', 'main.py', '标准库.py']
# sys库:命令行参数存储于sys的argv属性中
print(sys.argv) # 获取执行python时的命令行参数,例如python3 demo.py one two three,会打印['demo.py', 'one', 'two', 'three']
# parser = argparse.ArgumentParser(
# prog='top',
# description='Show top lines from each file')
# parser.add_argument('filenames', nargs='+')
# parser.add_argument('-l', '--lines', type=int, default=10)
# args = parser.parse_args()
# print(args)
# 终止脚本:exit()
# sys.exit()
# re库:提供正则表达式处理
filter_str = re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')
print(filter_str) # ['foot', 'fell', 'fastest']
# math库:数学工具函数
cos = math.cos(math.pi / 2) # 6.123233995736766e-17
print(cos)
sin = math.sin(math.pi / 2) # 1
print(sin)
log = math.log(1024, 2)
print(log) # 10
# random库:随机数
number1 = random.random()
print("random:", number1) # [0.0, 1.0)中的浮点随机数
ls = random.sample(range(0, 100), 10) # 无重复值的10个随机数
print("sample:", ls) # 随机10个数字
rg = random.randrange(6)
print("rg:", rg)
# statistic库:基本的统计属性
data = [1, 2, 3]
avg_number = statistics.mean(data)
print("均值:", avg_number) # 均值: 2
mid_number = statistics.median(data)
print("中位数:", mid_number) # 中位数: 2
var_number = statistics.variance(data)
print("方差:", var_number) # 方差: 1
# 获取网页
with urlopen('https://www.baidu.com/') as response:
html = response.read()
# 写入文件中
with open('baidu.html', 'wb') as f:
f.write(html)
f.close()
print(html)
# datetime库:操作日期和时间
now = date.today()
print("今天日期:", now.today()) # 今天日期: 2026-01-23
print("年份:", now.year) # 时间: 2026
print("月份:", now.month) # 时间: 1
# zip库:数据压缩,支持zlib、gzip、bz2、lzma、zipfile、tarfile
s = '测试文本内容'.encode('utf-8')
print(f"原文长度:{len(s)}") # 原文长度:41
print(f"原文:{s.decode('utf-8')}")
t = zlib.compress(s)
print(f"压缩后长度:{len(t)}") # 压缩后长度:37
print(f"压缩后:{t}")
rt = zlib.decompress(t)
print(f"解压缩后:{rt.decode('utf-8')}") # 测试文本内容
Loading...
