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

python标准库

目录

1. files

1)路径

2)目录

3)文件创建时间

4)文件复制

5)zip文件

6)csv文件

6)json文件

2. SQLite

3. time/datetime

1)time

2)datetime(模块)

a. datetime类

b. timedelta

4. Random Values

5. Email

邮箱服务商设置:

安全凭证:

发送html:

6. web

1)open the browser

2)html

7. command line argument

8. run external programs

1)运行命令行

2)运行文件

参数:

返回对象:


python有全面的软件包和模块库

1. files

1)路径

image-20250730170051561

2)目录

  • Path(): 相当于 . ,返回上一级目录

image-20250730180008234

  • Path.cwd():获取当前工作目录,即vscode打开的文件夹

image-20250730175008419

  • Path.home():获取用户主目录

  • path.mkdir(exist_ok=True):创建目录,如果已存在则不报错。path为指定的目录名称

  • path.rmdir():删除当前目录

  • path.rename(" "):修改目录名称

  • path.iterdir():目录迭代,返回的是一个生成器,要获取文件需要用for循环

  • path.glob("*.py"):递归搜索当前目录中的所有 Python 文件

  • path.rglob("*.py"):递归搜索当前目录及其所有子目录中的所有 Python 文件

image-20250730173709561

image-20250730173733917

WindowsPath:windows系统中使用的标准

image-20250730171527191

PosixPath:Unix、Linux、Mac OS X等系统中使用的标准

image-20250730171552849

3)文件创建时间

path.stat().st_ctime:获取文件创建时间戳

ctime(时间戳):转换为年月日

image-20250730175200040

4)文件复制

image-20250730175810545

5)zip文件

创建一个zip文件并添加文件:

image-20250730200922251

读取zip文件并提取内容:

image-20250730200934557

6)csv文件

csv代表逗号分隔值

  • 写文件:

image-20250730220709510

  • 读文件:读取文件时光标会自动定位到文件开头,读完时光标在末尾,此刻再读是读不到内容的。

注:读出的内容为字符串,若要将其视为数字需要进行转换。

image-20250730220741241

6)json文件

使用 Javascript语法来描述数据对象。(更常用)

  • 写文件:首先应将数据转换为json格式:json.dumps()。再通过path.write_text()写文件。

image-20250731182932902

  • 读文件:通过path.read_text()读文件,再通过json.loads(data)转换为列表。

image-20250731182947905

2. SQLite

image-20250731184528999

PK:每个id都唯一值

Not:该数据不能为空。

  • 写入数据库:首先应连接数据库,写入指令为“INSERT INTO xxx VALUSE(?,?,?)”,几个问号表示有几列。写入时将数据转换为元组。

image-20250731191606448

  • 读数据库:首先应连接数据库,读指令为“SELECT * FROM xxx”。读数据库时有一个游标。

  • cursor.fetchall是一个常用于从数据库中检索所有行的方法。当你执行了一个查询并且想要获取它的所有结果时,fetchall会返回一个包含结果集中所有记录的元组列表。

image-20250731192320021

3. time/datetime

1)time

  • time.time(): 返回时间戳

    计算执行时间

image-20250731193149124

2)datetime(模块)

a. datetime类
  • datetime(年,月,日):将日期转换为datetime对象。

image-20250731194547898

  • datetime.now():返回当前时间

  • datetime.strptime("2018/01/01", "%Y/%m/%d"):将字符串格式的日期转换为Python的datetime对象。

  • dt.strftime("%Y-%m-%d %H:%M:%S"):将datetime对象反向转换为字符串。

  • dt.year,dt.month:返回年月。

image-20250731195138114

b. timedelta

71828:表示19:57的总秒数

若要加减时间,则可通过加减timedelta(days=1)等

image-20250731195725538

image-20250731195738966

4. Random Values

  • random.random():生成0-1的随机浮点数

  • random.randint(1, 100):生成随机整数

  • random.choice(['apple', 'banana', 'cherry'],k=?):生成随机?个选择

  • "分隔符选择".join(random.choices("abcdefghi", k=5))

image-20250801163526445

image-20250801163738569

  • 生成随机密码/验证码:print("".join(random.choices(string.ascii_letters + string.digits, k=5)))

  • random.shuffle(list):打乱列表,无返回值,是一个操作函数,直接操作变量。

image-20250801164518882

5. Email

发送:创建邮件,通过stmp发送邮件。可发送纯文本或html

邮箱服务商设置:

  • QQ邮箱:使用SMTP服务器 smtp.qq.com,端口465(SSL)

  • 163邮箱smtp.163.com,端口465

  • Gmailsmtp.gmail.com,端口587(TLS)

安全凭证:

  • 需使用邮箱密码专用授权码(QQ/163等邮箱需在设置中生成授权码)

  • 启用SMTP服务(邮箱设置中开启)

image-20250801173147074

发送html:

image-20250801174931910

image-20250801174957907

其中substitute表示替换模板中的参数name。

6. web

1)open the browser

  • webbrowser.open("网址")

image-20250801165147817

2)html

vscode中!加回车就可以快速生成前端代码模板

image-20250801174759776

7. command line argument

默认情况下,运行python文件传递的参数有一个,为['app.py'],但也可以通过python app.py xxx 传递其他参数,此时参数为['app.py', '1234']。

image-20250802152020160

8. run external programs

subprocess.run(["command", "argument"])

1)运行命令行

windows:

image-20250802153146196

linux:

image-20250802153118376

2)运行文件

在程序中运行其他python文件,可用来作为自动化脚本

completed = subprocess.run(["python", "01-HelloWorld/app.py"],check=True, capture_output=True,text=True)

参数:
  • argv(必须):要执行的命令;类型:字符串或字符串列表。

  • check = True:是否检查返回码,默认为false。设为True时,返回码非0时抛出CalledProcessError

  • capture_output=True捕获子进程的输出(标准输出 stdout 和标准错误 stderr)

    默认情况(false):如果不设置,子进程的输出会直接打印到终端,无法在程序中获取

    行为

    • 设置为True等价于同时设置 stdout=subprocess.PIPEstderr=subprocess.PIPE

    • 会将子进程的输出保存在返回对象的 .stdout.stderr 属性中

  • text=True:以文本形式处理输入输出,将输出解码为字符串(而不是字节)

    默认情况(false):如果不设置,捕获的输出会是原始字节

    行为

    • 将捕获的输出自动转换为 UTF-8 字符串

    • 相当于旧参数 universal_newlines=True(Python 3.7+ 更推荐使用 text

image-20250802154631227

  • stdin:标准输入源。可选值:

    None:无输入(默认)

    subprocess.PIPE:创建管道

    文件对象

    文件描述符(整数)

执行控制

  • shell:是否通过系统 shell 执行。

  • cwd(字符串):设置工作目录。

    subprocess.run(["ls"], cwd="/tmp")

  • timeout(数字):超时时间(秒),超时抛出 TimeoutExpired 异常

    subprocess.run(["sleep", "10"], timeout=5)

编码处理

  • encoding(字符串):指定文本编码,需配合 text=True 使用

  • errors (字符串):编解码错误处理策略,常用值:'strict', 'ignore', 'replace'

    subprocess.run(..., errors="ignore")

环境控制

  • env (字典):自定义环境变量。

    默认:继承当前环境

custom_env = {"PATH": "/usr/bin", "MY_VAR": "value"}
subprocess.run(["cmd"], env=custom_env)
返回对象:

函数返回 CompletedProcess 对象,包含:

result = subprocess.run(...)
print(result.args)      # 执行的命令
print(result.returncode) # 返回码 (0=成功)
print(result.stdout)    # 标准输出(当被捕获时)
print(result.stderr)    # 标准错误(当被捕获时)
http://www.dtcms.com/a/393154.html

相关文章:

  • 01 Tasking软件安装及新建工程
  • ​​[硬件电路-288]: 单路双输入异或门(门控开关:两个同时为1,输出为1)NC7SZ86L6X 功能概述与管脚定义
  • 声明式事务4
  • 速通ACM省铜第十天 赋源码(A Good Problem和Make It Beautiful和Gellyfish and Baby‘s Breath)
  • 寰宇光锥舟
  • 如何安全的计算softmax?
  • 第一部分:基础架构与入门
  • [Windows] Cencrack在线工具包6.52
  • 算法基础篇(2)模拟
  • Go基础:Go语言结构体(Struct)和接口(Interface)详解
  • 【计算机毕业设计】基于生成对抗网络的动作与表情一致性动漫角色生成算法系统​
  • html5 做个人网页识芯平夹回拼翘
  • 开收价均值策略
  • 【大模型部署】Ollama部署gguf模型
  • Coze源码分析-资源库-删除工作流-前端源码-核心组件
  • 机器学习实战第八章 降维
  • 2025年csp-j真题和解析
  • C++ STL map 深度解析:从原理到实战的全方位指南
  • 【EKF组合导航例程】MATLAB代码,15维状态量、3维观测量的组合导航,滤波使用EKF(扩展卡尔曼滤波)。附下载链接
  • word文档怎么根据大纲拆分章节
  • 【Modbus】Modbus协议基础知识详解
  • Springboot使用Integration实现MQTT发送和接收消息
  • 中国传统文化上衣下裳
  • zk管理kafkakafka-broker通信
  • 前端开发技术趋势Web Components
  • Python tarfile库详解
  • ​​[硬件电路-287]:高性能六通道数字隔离器CA-IS3763L 功能概述与管脚定义
  • 错题集系统接口文档
  • 【RAG-LLM】InfoGain-RAG基于文档信息增益的RAG
  • Browser-Use深度解析:重新定义AI与浏览器的智能协作