【新人系列】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 框架、网络编程、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。

Tips:

不用通过 pip 工具下载的库称为标准库,需要用 pip 工具下载的库称为第三方库。

有些问题可以通过现成的库进行解决,通过上面提供的链接可以寻找符合需求的库进行下载使用。

1. os 模块

1.1 os 定义

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

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

模块导入方式:

python 复制代码
import os

1.2 使用方法

常见函数及方法

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

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

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

python 复制代码
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 函数声明:

  • 返回值:函数返回一个元组,含有三个元素。
  • 分别是:每次遍历的路径名、路径下子目录列表、目录下文件列表。
python 复制代码
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 是要执行的命令字符串。

python 复制代码
import os

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

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

python 复制代码
import os

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

2. sys 模块

2.1 sys 定义

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

导入方式:

python 复制代码
import sys

2.2 使用方法

  1. sys.argv

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

python 复制代码
import sys

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

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

python 复制代码
import sys

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

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

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

3. time 模块

3.1 time 定义

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

导入方式:

python 复制代码
import time

3.2 使用方法

时间获取

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

  • 时间戳
  • 时间字符串
  • 时间元组(struct_time)
python 复制代码
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

时间类型转换

python 复制代码
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 格式化后的时间字符串。

python 复制代码
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() 的逆向操作。

python 复制代码
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)
相关推荐
蹦蹦跳跳真可爱5893 分钟前
Python----Python高级(正则表达式:语法规则,re库)
python·正则表达式
大哥喝阔落6 分钟前
图片专栏——曝光度调整相关
人工智能·python·opencv
Java知识技术分享8 分钟前
SecureUtil.aes数据加密工具类
java·后端·intellij-idea
Channing Lewis20 分钟前
vscode如何选用不同的python的解释器
ide·vscode·python
小丁爱养花20 分钟前
Spring MVC:设置响应
java·开发语言·前端
冯萦岚35 分钟前
R语言的图形用户界面
开发语言·后端·golang
{⌐■_■}41 分钟前
【GORM】事务,嵌套事务,保存点事务的使用,简单电商平台go案例
开发语言·jvm·后端·mysql·golang
李少兄43 分钟前
解决因JDK升级导致的`java.nio.file.NoSuchFileException`问题
java·python·nio
次元工程师!1 小时前
JAVA-IO模型的理解(BIO、NIO)
java·笔记·学习·nio·bio·io模型
C++小厨神1 小时前
Kotlin语言的正则表达式
开发语言·后端·golang