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

【新人系列】Python 入门(二十八):常用标准库 - 上

✍ 个人博客:https://blog.csdn.net/Newin2020?type=blog
📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html
📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们一起交流~
📚 专栏简介:在这个专栏,我将带着大家从 0 开始入门 Python 的学习。在这个 Python 的新人系列专栏下,将会总结 Python 入门基础的一些知识点,方便大家快速入门学习~
❤️ 如果有收获的话,欢迎点赞 👍 收藏 📁 关注,您的支持就是我创作的最大动力 💪

官方文档:https://docs.python.org/zh-cn/3.7/library/os.html
利用 Python 标准库或三方库,覆盖的功能场景包括:Web 框架、网络编程、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。

  • Python 标准库:https://docs.python.org/zh-cn/3.7/library/index.html
  • Python 资源集合:https://github.com/zhoujinjian/awesome-python-cn

Tips:
不用通过 pip 工具下载的库称为标准库,需要用 pip 工具下载的库称为第三方库。
有些问题可以通过现成的库进行解决,通过上面提供的链接可以寻找符合需求的库进行下载使用。

1. os 模块

1.1 os 定义

os 模块是 Python 标准库中的一个用于访问操作系统相关功能的模块,使用 os 模块中提供的接口,可以实现跨平台访问。

os 模块的主要功能:系统相关、目录及文件操作、执行命令和管理进程

模块导入方式:

import os

1.2 使用方法

常见函数及方法

os 模块中包含了一系列文件操作相关的函数:

在这里插入图片描述

os.path 模块不仅提供了一些操作路径字符串的方法,还包含一些或者指定文件属性的一些方法:

在这里插入图片描述

上面红色标注的方法是日常过程中比较常用的方法,其中前三个标红的方法使用方法如下。

import os

# 获取当前文件的绝对路径
print(os.path.abspath(__file__))    # /Users/Desktop/project/test_python/test.py
# 获取当前文件名
print(os.path.basename(__file__))   # test.py
# 获取当前文件所在目录
print(os.path.dirname(__file__))    # /Users/Desktop/project/test_python

而 listdr 和 walk 方法都可用于遍历目录,其使用场景如下:

  • 场景 1:在一个目录中只有文件,没有子文件夹,使用 os.listdir
  • 场景 2:一个目录下既有子目录也有文件,需要递归遍历时,使用 os.walk

walk 函数声明:

  • 返回值:函数返回一个元组,含有三个元素。
  • 分别是:每次遍历的路径名、路径下子目录列表、目录下文件列表。
import os

path = "."

# 在一个目录下只有文件,没有文件夹,这个时候可以使用 os.listdir 遍历
for filename in os.listdir(path):
    print(os.path.join(path, filename))

# 递归的情况,一个目录下既有目录也有文件,则可以使用 os.walk 遍历
for root, dirs, files in os.walk(path):
    # 继续遍历当前目录下的所有文件
    for name in files:
        print(os.path.join(root, name))
    # 继续遍历当前目录下的所有目录
    for name in dirs:
        print(os.path.join(root, name))

执行命令

使用 os 模块中的 system 或者 popen 等方法可以执行操作系统的命令令。

  1. os.system(command)

运行操作系统命令,直接显示结果。但返回值是 0 或 -1,不能获得显示在屏幕上的数据。其中 command 是要执行的命令字符串。

import os

os.system("ls")

在这里插入图片描述

  1. os.popen(command, [mode, [bufsize]])

如果想将执行的命令结果持久化到变量中,则可以使用这个方法。它开启了一个子进程执行 command 参数指定的命令,在父进程和子进程之间建立一个管道 pipe,用于在父子进程间通信,并通过 read() 方法将命令的结果返回。

import os

ret = os.popen("ls")
print(ret)
print(ret.read())

在这里插入图片描述

2. sys 模块

2.1 sys 定义

sys 模块主要是针对与 Python 解释器相关的变量和方法,不是主机操作系统。

导入方式:

import sys

2.2 使用方法

在这里插入图片描述

  1. sys.argv

sys.argv 是一个脚本执行参数列表,列表的第一个元素是脚本名称,从第二个元素开始才是真正的参数。

import sys

# 打印参数列表
for index, arg in enumerate(sys.argv):
    print("第 %d 个参数是:%s" % (index, arg))

在这里插入图片描述

  1. sys.path

sys.path 是 Python 的搜索模块的路径集合,Python 就会按照这个路径集合搜索查找模块。

import sys

# 模块搜索路径
for path in sys.path:
    print(path)

在这里插入图片描述

如果想添加模块查找的路径,则可以直接使用 append 方法添加。

sys.path.append("C:\\")    # 将 C 盘路径添加到模块的查找的路径中

3. time 模块

3.1 time 定义

time 模块是 python 专门用来处理时间的内建库。

导入方式:

import time

3.2 使用方法

时间获取

在 Python 中,通常有这几种方式来表示时间:

  • 时间戳
  • 时间字符串
  • 时间元组(struct_time)
import time

# 获取时间戳
t1 = time.time()
print(int(t1))  # 1723771496

# 获取时间元组
t2 = time.localtime()
print(t2)       # time.struct_time(tm_year=2024, tm_mon=8, tm_mday=16, tm_hour=9, tm_min=24, tm_sec=56, tm_wday=4, tm_yday=229, tm_isdst=0)

# 获取时间字符串
t3 = time.asctime()
print(t3)       # Fri Aug 16 09:24:56 2024

时间类型转换

在这里插入图片描述

import time

# 获取时间戳
t1 = time.time()
print(int(t1))  # 1723772044

# 将一个时间戳转换为时间元组
t2 = time.localtime((t1))
print(t2)   # time.struct_time(tm_year=2024, tm_mon=8, tm_mday=16, tm_hour=9, tm_min=34, tm_sec=4, tm_wday=4, tm_yday=229, tm_isdst=0)

# 再将时间元组转换回时间戳
t3 = time.mktime(t2)
print(t3)   # 1723772044.0

# 将时间戳转换成时间字符串
t4 = time.ctime(t3)
print(t4)   # Fri Aug 16 09:34:04 2024

时间类型格式化

  1. time.strftime(format[, struct_time])

传入格式和 struct_time,返回按照 format 格式化后的时间字符串。

import time

# 将 struct_time 对象转换成格式化时间字符串
t1 = time.strftime("%Y-%m-%d %H:%M:%S")
print(t1)   # 2024-08-16 09:37:36

t = time.localtime()    # 在睡眠前获取
time.sleep(3)

t2 = time.strftime("%Y-%m-%d %H:%M:%S", t)
print(t2)   # 2024-08-16 09:37:36
  1. time.strptime(string[, format])

将字符串时间转为 struct_time,time.strftime() 的逆向操作。

import time

# 将时间字符串转换成 struct_time 对象
time_str = "2010-01-01 20:00:00"
t = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
print(t)    # time.struct_time(tm_year=2010, tm_mon=1, tm_mday=1, tm_hour=20, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=1, tm_isdst=-1)

http://www.kler.cn/a/512410.html

相关文章:

  • EXCEL的一些用法记录
  • 集合帖:前缀和及差分模板题 ← “洛谷 P5638:光骓者的荣耀” + “洛谷 P3397:地毯”
  • 大模型GUI系列论文阅读 DAY2续:《一个具备规划、长上下文理解和程序合成能力的真实世界Web代理》
  • EasyControl:首个登陆AWS Marketplace的中国MDM先锋
  • Ubuntu 24.04 LTS 空闲硬盘挂载到 文件管理器的 other locations
  • OpenWrt 中使用 LuCI 界面部署 Docker 镜像
  • 算法题目总结-二叉树
  • SuperMap iClient3D for WebGL选中抬升特效
  • oracle之行转列
  • 亲测有效!如何快速实现 PostgreSQL 数据迁移到 时序数据库TDengine
  • vue3+three.js加载glb模型
  • 基于SpringBoot + Mybatis Plus + SaToken + Thymeleaf + Layui的后台管理系统
  • Python基于Django的社区爱心养老管理系统设计与实现【附源码】
  • Cyber Security 101-Security Solutions-Firewall Fundamentals(防火墙基础)
  • Java Web开发高级——Spring Boot与Docker容器化部署
  • 电子电气架构 --- 车载通信诊断
  • 【开源免费】基于SpringBoot+Vue.JS密接者跟踪系统(JAVA毕业设计)
  • 大语言模型增强推荐系统:分类、趋势、应用与未来
  • c# PDF文件合并工具
  • python milvus及curl命令进行query请求
  • Java工程结构:服务器规约(JVM 碰到 OOM 场景时输出 dump 信息、设置tomcat的 JVM 的内存参数、了解服务平均耗时)
  • STM32更新程序OTA
  • 为AI聊天工具添加一个知识系统 之54 为事务处理 设计 基于DDD的一个 AI操作系统 来处理维度
  • npm配置electron专属的淘宝镜像进行安装
  • 2、ansible的playbook
  • MongoDB文档查询