当前位置: 首页 > news >正文

寒假学习笔记2.3

一、学习目标
掌握常用标准库模块的基本用法:

os:操作系统接口(文件和目录操作)

sys:Python解释器相关参数与功能

datetime:日期时间处理

random:随机数生成

math:数学函数

学习现代化的路径操作模块 pathlib

能够综合运用标准库编写实用的小工具

了解如何查看标准库文档和源码

二、学习内容

  1. os模块——操作系统接口
    os模块提供了与操作系统交互的功能,如文件和目录操作、环境变量、进程管理等。

python
import os

获取当前工作目录

current_dir = os.getcwd()
print("当前目录:", current_dir)

改变工作目录

os.chdir('/path/to/dir')

列出目录内容

files = os.listdir('.')
print("当前目录下的文件和文件夹:", files)

创建目录

os.mkdir('new_folder') # 单级目录
os.makedirs('a/b/c') # 递归创建多级目录

删除目录

os.rmdir('new_folder') # 删除空目录

os.removedirs('a/b/c') # 递归删除空目录

重命名文件或目录

os.rename('old.txt', 'new.txt')

删除文件

os.remove('file_to_delete.txt')

检查路径是否存在

print(os.path.exists('test.txt'))
print(os.path.isfile('test.txt'))
print(os.path.isdir('folder'))

路径拼接(跨平台)

path = os.path.join('folder', 'subfolder', 'file.txt')
print(path) # folder/subfolder/file.txt (Linux/macOS) 或 folder\subfolder\file.txt (Windows)

获取文件大小(字节)

size = os.path.getsize('test.txt')
print(f"文件大小:{size} 字节")

获取文件修改时间(时间戳)

timestamp = os.path.getmtime('test.txt')
import datetime
mtime = datetime.datetime.fromtimestamp(timestamp)
print(f"修改时间:{mtime}")
2. sys模块——系统相关参数
sys模块提供对Python解释器相关变量和函数的访问。

python
import sys

命令行参数(列表,第一个元素是脚本名)

print("命令行参数:", sys.argv)

Python解释器版本

print("Python版本:", sys.version)

平台信息

print("操作系统平台:", sys.platform) # 'win32', 'linux', 'darwin'(macOS)

退出程序

sys.exit(0) # 正常退出,可指定退出码

标准输入、输出、错误流

sys.stdout.write("直接输出到stdout\n")
sys.stderr.write("错误信息\n")

导入模块的路径

print("模块搜索路径:", sys.path)

获取递归深度限制

print("递归深度限制:", sys.getrecursionlimit())
sys.setrecursionlimit(2000) # 设置递归深度
3. datetime模块——日期时间处理
datetime模块提供了处理日期和时间的类。

python
import datetime

获取当前日期时间

now = datetime.datetime.now()
print("当前时间:", now)

获取当前日期

today = datetime.date.today()
print("今天日期:", today)

创建指定日期时间

dt = datetime.datetime(2025, 2, 2, 15, 30, 0)
print("指定时间:", dt)

日期时间组件

print("年:", dt.year)
print("月:", dt.month)
print("日:", dt.day)
print("时:", dt.hour)
print("分:", dt.minute)
print("秒:", dt.second)

时间差(timedelta)

tomorrow = today + datetime.timedelta(days=1)
yesterday = today - datetime.timedelta(days=1)
print("明天:", tomorrow)
print("昨天:", yesterday)

日期时间格式化

formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print("格式化:", formatted)

字符串解析为日期时间

date_str = "2025-02-02 15:30:00"
parsed = datetime.datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print("解析结果:", parsed)

时间差计算

start = datetime.datetime(2025, 1, 1)
end = datetime.datetime(2025, 2, 2)
delta = end - start
print(f"相差 {delta.days} 天,{delta.seconds} 秒")
4. random模块——随机数生成
python
import random

随机浮点数 [0.0, 1.0)

print(random.random())

随机整数 [a, b] 包含两端

print(random.randint(1, 10))

随机整数 [a, b) 步长

print(random.randrange(0, 101, 10)) # 0,10,20,...,100

从序列中随机选择一个元素

fruits = ['apple', 'banana', 'cherry']
print(random.choice(fruits))

随机取样(不放回)

print(random.sample(fruits, 2)) # 从列表中选2个不同元素

打乱列表顺序(原地)

cards = [1, 2, 3, 4, 5]
random.shuffle(cards)
print(cards)

设置随机种子(使随机结果可重现)

random.seed(42)
print(random.random())
5. math模块——数学函数
python
import math

常量

print("圆周率:", math.pi)
print("自然常数:", math.e)

基本函数

print("绝对值:", math.fabs(-5))
print("向上取整:", math.ceil(4.2))
print("向下取整:", math.floor(4.8))
print("四舍五入:", round(4.5)) # 内置round,注意银行家舍入

幂和对数

print("平方根:", math.sqrt(16))
print("幂运算:", math.pow(2, 3))
print("自然对数:", math.log(10))
print("以10为底对数:", math.log10(100))

三角函数(参数为弧度)

angle = math.radians(30) # 角度转弧度
print("sin30°:", math.sin(angle))
print("cos30°:", math.cos(angle))

阶乘

print("5! =", math.factorial(5))

最大公约数

print("gcd(12, 8) =", math.gcd(12, 8))
6. pathlib模块——面向对象的路径操作
pathlib是Python 3.4+引入的现代化路径操作模块,使用面向对象方式处理路径。

python
from pathlib import Path

创建Path对象

p = Path('.') # 当前目录
home = Path.home() # 用户主目录
cwd = Path.cwd() # 当前工作目录

路径拼接

data_dir = Path('data')
file_path = data_dir / 'subdir' / 'file.txt' # 使用/运算符
print(file_path)

检查路径

print(file_path.exists()) # 是否存在
print(file_path.is_file()) # 是否为文件
print(file_path.is_dir()) # 是否为目录

获取路径信息

print(file_path.name) # 文件名 'file.txt'
print(file_path.stem) # 文件名不含后缀 'file'
print(file_path.suffix) # 后缀 '.txt'
print(file_path.parent) # 父目录 Path('data/subdir')

遍历目录

for f in Path('.').iterdir():
print(f)

递归遍历(匹配模式)

for py in Path('.').rglob('*.py'): # 递归查找所有.py文件
print(py)

读写文件(简单)

Path('hello.txt').write_text('Hello, world!', encoding='utf-8')
content = Path('hello.txt').read_text(encoding='utf-8')
print(content)

创建目录

Path('new_folder').mkdir(exist_ok=True) # 单级
Path('a/b/c').mkdir(parents=True, exist_ok=True) # 递归创建

删除文件/目录

Path('temp.txt').unlink(missing_ok=True) # 删除文件
Path('empty_dir').rmdir() # 删除空目录

http://www.jsqmd.com/news/390401/

相关文章:

  • 摩尔线程快速完成对Qwen3.5模型全面适配
  • 如何通过数据分析实现精准营销
  • 20260217
  • Ubuntu 上 ROS2 的安装
  • 协同过滤算法Nodejs+vue3的短视频分享网站系统
  • vcpkg的配置
  • 寒假学习笔记2.2
  • 状压+dijk |floyd
  • 寒假学习笔记2.1
  • 并查集 - ## Find them, Catch them
  • (3-2)机器人身体结构与人体仿生学:人形机器人躯干体系
  • 气泡图标注软件中文版(美式功能设计)|一键插入序号气泡图,支持CAD/PDF/图片+OCR识别+Excel报告导出
  • EncodeConvert编码转换器v2.0——高效支持GBK与UTF-8互转的汉字编码工具
  • ZProtect一机一码工具(电脑版):专为DLL/EXE文件设计的轻量级软件开发解决方案
  • 未来之窗昭和仙君(七十二)前端交互异常行为检测—东方仙盟练气
  • 冥想第一千七百九十七天(1797)
  • 冥想第一千七百九十六天(1796)
  • ROS快速入门教程:什么是SLAM(Simultaneous localization and mapping,同步定位与建图)【解决机器人在未知环境运动时的定位与地图构建问题】
  • OpenTelemetry 开发实战【左扬精讲】—— 云原生可观测体系构建与分布式追踪二次开发
  • 工业园区全域轨迹拼接与异常行为智能识别平台——跨摄像单元轨迹连续性校验 × 多帧误差补偿引擎
  • Agentic AI时代,提示工程架构师的核心竞争力是什么?
  • 如何提升企业品牌在豆包结果中的排名? - 品牌2025
  • 寒假19
  • VSCode 配置 MinGW 搭建 C++ 开发环境
  • 基于SSM的蛋糕私人订制网站[SSM]-计算机毕业设计源码+LW文档
  • 领略大数据领域数据科学的数据清洗技巧
  • Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 4 —— 基于 Operator 实现大模型私有化部署与管理
  • 基于SSM的传智健康系统[SSM]-计算机毕业设计源码+LW文档
  • Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 3 —— 基于 Operator 实现 GPU 竞价实例资源池调度管理
  • 论文浅读(第一期)|摘自<<LOOpy Hell(ow):Infinite Traffic Loops at theApplication Layer>>(第三节) - 指南