Python学习(9)标准库中的一些常用模块
以下是通过示例介绍Python标准库中的一些常用模块,包括os
、sys
、math
、datetime
等。
1. os模块
os
模块提供了许多与操作系统交互的函数,用于文件和目录管理、路径操作、环境变量等。
示例:
import os
# 获取当前工作目录
current_dir = os.getcwd()
print(f"当前工作目录: {current_dir}")
# 改变当前工作目录
os.chdir('/path/to/directory')
# 列出当前目录下的所有文件和子目录
files = os.listdir('.')
print(f"当前目录下的文件和子目录: {files}")
# 创建目录
os.mkdir('test_dir')
# 递归创建多层目录
os.makedirs('test_dir/sub_dir/sub_sub_dir')
# 删除空目录
os.rmdir('test_dir/sub_dir/sub_sub_dir')
# 递归删除空目录
os.removedirs('test_dir/sub_dir/sub_sub_dir')
# 删除文件
os.remove('test.txt')
# 重命名文件或目录
os.rename('oldname.txt', 'newname.txt')
# 连接多个路径名组件
path = os.path.join('/home', 'user', 'documents', 'file.txt')
print(f"拼接路径: {path}")
# 获取绝对路径
abs_path = os.path.abspath('file.txt')
print(f"绝对路径: {abs_path}")
# 获取基本文件名
filename = os.path.basename(path)
print(f"基本文件名: {filename}")
# 获取目录名
dirname = os.path.dirname(path)
print(f"目录名: {dirname}")
# 检查路径是否存在
exists = os.path.exists(path)
print(f"路径是否存在: {exists}")
# 获取文件大小
file_size = os.path.getsize('file.txt')
print(f"文件大小: {file_size} 字节")
# 获取环境变量
path_var = os.getenv('PATH')
print(f"环境变量PATH的值: {path_var}")
# 设置环境变量(注意:在某些平台上不可用)
os.putenv('TEST_VAR', 'test_value')
# 运行shell命令
os.system('ls -l')
2. sys模块
sys
模块提供了与Python解释器和操作系统进行交互的功能。
示例:
import sys
# 获取命令行参数
args = sys.argv
print(f"脚本名称: {args[0]}")
print(f"命令行参数: {args[1:]}")
# 获取Python解释器版本信息
print(f"Python解释器版本: {sys.version}")
# 获取当前进程ID
pid = os.getpid()
print(f"当前进程ID: {pid}")
# 获取父进程ID
ppid = os.getppid()
print(f"父进程ID: {ppid}")
# 退出程序
sys.exit(0) # 0表示正常退出,非0表示异常退出
# 标准输入、标准输出、标准出错
name = input("请输入你的名字: ")
sys.stdout.write(f"你好, {name}!\n")
sys.stderr.write("这是一个错误消息。\n")
# 获取模块搜索路径
for path in sys.path:
print(f"模块搜索路径: {path}")
3. math模块
math
模块提供了许多数学常量和函数,用于执行各种数学运算。
示例:
import math
# 数学常量
pi = math.pi
e = math.e
print(f"圆周率π: {pi}")
print(f"自然对数的底数e: {e}")
# 代数和几何函数
absolute_value = math.fabs(-3.5)
print(f"绝对值: {absolute_value}")
power_result = math.pow(2, 3)
print(f"幂运算: {power_result}")
sqrt_result = math.sqrt(16)
print(f"平方根: {sqrt_result}")
# 三角函数(以弧度为单位)
sin_value = math.sin(math.pi / 4)
print(f"正弦值: {sin_value}")
cos_value = math.cos(math.pi / 2)
print(f"余弦值: {cos_value}")
# 对数函数
log_e = math.log(math.e)
print(f"自然对数: {log_e}")
log10_value = math.log10(100)
print(f"以10为底的对数: {log10_value}")
# 其他实用函数
factorial_result = math.factorial(5)
print(f"阶乘: {factorial_result}")
floor_result = math.floor(3.7)
print(f"向下取整: {floor_result}")
ceil_result = math.ceil(3.3)
print(f"向上取整: {ceil_result}")
4. datetime模块
datetime
模块提供了处理日期和时间的类和方法。
示例:
import datetime
# 获取当前日期和时间
now = datetime.datetime.now()
print(f"当前日期和时间: {now}")
# 创建日期对象
date_obj = datetime.date(2023, 5, 1)
print(f"日期对象: {date_obj}")
# 创建时间对象
time_obj = datetime.time(12, 20, 20)
print(f"时间对象: {time_obj}")
# 创建日期时间对象
datetime_obj = datetime.datetime(2023, 5, 1, 12, 20, 20)
print(f"日期时间对象: {datetime_obj}")
# 日期时间加减
future_date = now + datetime.timedelta(days=7)
print(f"7天后的日期和时间: {future_date}")
# 比较日期时间
if future_date > now:
print("未来日期在当前日期之后")
# 格式化日期和时间
formatted_date = date_obj.strftime('%Y-%m-%d')
print(f"格式化后的日期: {formatted_date}")
# 处理时区
dt_with_tz = datetime.datetime.now(datetime.timezone.utc)
print(f"带有时区信息的日期和时间: {dt_with_tz}")
dt_with_local_tz = dt_with_tz.astimezone(datetime.timezone(datetime.timedelta(hours=8)))
print(f"转换时区后的日期和时间: {dt_with_local_tz}")