python内置库之os、sys、math、datetime、json、re
迪丽瓦拉
2025-05-28 21:22:28
0

一 os 模块

# 导入os模块
import os# 查看os模块说明文档
help(os)
# 查看os模块的属性和方法
print(dir(os))

1.1 os常用方法

# 获取系统名称,nt代表windows,posix代表linux
print(os.name)   # nt
# 获取系统环境变量信息
print(os.environ)
# 获取指定名称的环境变量信息
print(os.getenv("PATH"))
# 执行系统指令  # windows系统 
print(os.system("dir"))   # 0

1.2  操作目录

"""目录相关"""
# 获取当前所在目录
print(os.getcwd())  # G:\01-project\08-深度学习
# 切换目录
os.chdir("...")
# 列出当前目录下的所有文件
print(os.listdir())   # ['.ipynb_checkpoints', 'test.ipynb']
# 创建空目录
os.mkdir("new")
# 递归创建多级目录
os.makedirs("a/b/c")
# 删除空目录
os.rmdir("new")
# 重命名目录
os.rename("a", "a1")
# 删除文件
os.remove("xxx.txt")

1.3  操作路径

'''os路径相关'''
# 返回绝对路径
print(os.path.abspath("./test.py"))
# 返回文件名
print(os.path.basename("D:/pycharm/pythonProject/test.py"))
# 返回文件路径
print(os.path.dirname("D:/pycharm/pythonProject/test.py"))
# 分割路径
print(os.path.split("D:/pycharm/pythonProject/test.py"))
# 拼接路径
print(os.path.join("D:/pycharm/pythonProject", "test.py"))
# 判断路径是否存在
print(os.path.exists("D:/pycharm/pythonProject/test.py"))
# 判断是否是目录
print(os.path.isdir("D:/pycharm/pythonProject/test.py"))
# 判断是否是文件
print(os.path.isfile("D:/pycharm/pythonProject/test.py"))
# 获取文件大小
print(os.path.getsize("D:/pycharm/pythonProject/test.py"))

1.4  操作路径

'''os路径相关'''
# 返回绝对路径
print(os.path.abspath("./test.py"))   # G:\01-project\08-深度学习\test.py
# 返回文件名
print(os.path.basename("D:/pycharm/pythonProject/test.py"))   # test.py
# 返回文件路径
print(os.path.dirname("D:/pycharm/pythonProject/test.py"))    # D:/pycharm/pythonProject
# 分割路径
print(os.path.split("D:/pycharm/pythonProject/test.py"))      # ('D:/pycharm/pythonProject','test.py')
# 拼接路径
print(os.path.join("D:/pycharm/pythonProject", "test.py"))    # D:/pycharm/pythonProject\test.py
# 判断路径是否存在
print(os.path.exists("D:/pycharm/pythonProject/test.py"))     # False
# 判断是否是目录
print(os.path.isdir("D:/pycharm/pythonProject/test.py"))      # False
# 判断是否是文件
print(os.path.isfile("D:/pycharm/pythonProject/test.py"))     # False
# 获取文件大小
print(os.path.getsize("D:/pycharm/pythonProject/test.py"))
''' [WinError 3] 系统找不到指定的路径。: 'D:/pycharm/pythonProject/test.py''''

二 sys模块

# 导入sys模块
import sys# 查看sys模块帮助文档
help(sys)
# 查看sys模块的属性和方法
print(dir(sys))

2.1 sys常用属性

"""sys模块常用属性"""
# 返回python解释器版本
print(sys.version)    # 3.8.10
# 返回操作系统平台名称
print(sys.platform)   # win32
# 返回外部向程序传递的参数
print(sys.argv)
# 返回已导入的模板信息
print(sys.modules)
print(sys.modules.keys())
# 返回导包的搜索路径列表
print(sys.path)

2.2 sys常用方法

import time
"""sys常用方法"""
# 获取系统当前编码
print(sys.getdefaultencoding())    # utf-8# 运行时退出
# sys.exit()import time
for i in range(1,10):if i ==5:sys.exit("等于5,退出了")print(f"***{i}")  # ***4   time.sleep(1)

三 math模块

import mathprint(math.pi)  # 3.141592653589793
print(math.e)   # 2.718281828459045
print(math.inf)    # inf
print(-math.inf)   # -inf
print(math.nan)    # nan

print(math.ceil(1.2))    # 2
print(math.floor(1.2))   # 1

print(math.pow(2, 2))   # 4.0
print(math.sqrt(4))    # 2.0

四 日期与时间处理 datatime

import datetime# 当前时间
a = datetime.datetime.now()  
print(a)  # 2023-03-16 13:32:27.587976
print(a.day)   # 16
print(a.year)  # 2023
# 转化为时间戳
print(a.timestamp())   # 1678944747.587976

4.1 时间戳转化为时间

b = a.timestamp()
print(b)   # 1678944747.587976
# 时间戳转化为时间
c = datetime.datetime.fromtimestamp(b)
print(c)   # 2023-03-16 13:32:27.587976

4.2 时间转化为字符串

# 当前时间
a = datetime.datetime.now()
print(a)   # 2023-03-16 13:54:17.756692
# 时间转化为字符串
b = a.strftime("%Y%m%d-%H%M%S")
print(b)  # 20230316-135417

五 json 模块

用于存储和交换数据的语法,是一种轻量级的数据交换格式

5.1 使用场景

--接口数据传输

--序列化

--配置文件

import json# 定义python结构
data = [{"a": 1, "b": 2, "c": True, "d": False, "e": None}]
# 将python对象编码为 json字符串
json_data = json.dumps(data)
print(json_data)  # [{"a": 1, "b": 2, "c": true, "d": false, "e": null}]

import json# 定义python结构
data = [{"a": 1, "b": 2, "c": True, "d": False, "e": None}]
# 将python对象编码为 json字符串
json_data = json.dumps(data)
print(json_data)  # [{"a": 1, "b": 2, "c": true, "d": false, "e": null}]
# 将json字符串解码为python对象
python_data = json.loads(json_data)
print(python_data)  # [{"a": 1, "b": 2, "c": true, "d": false, "e": null}]
import json# 定义python结构
data = [{"a": 1, "b": 2, "c": True, "d": False, "e": None}]
# 将python对象编码为 json字符串
json_data = json.dumps(data)
print(json_data)
# 将json字符串解码为python对象
python_data = json.loads(json_data)
print(python_data)  # {'a': 1, 'b': 2, 'c': True, 'd': False, 'e': None}]
# 把python对象转化为json格式的数据并且写入json文件
with open("data.json", mode="w") as f:json.dump(data, f)
import json# 定义python结构
data = [{"a": 1, "b": 2, "c": True, "d": False, "e": None}]
# 将python对象编码为 json字符串
json_data = json.dumps(data)
print(json_data)
# 将json字符串解码为python对象
python_data = json.loads(json_data)
print(python_data)
# 把python对象转化为json格式的数据并且写入json文件
with open("data.json", mode="w") as f:json.dump(data, f)
# 读取json文件并解码成python对象
with open("data.json", mode="r") as f:data1 = json.load(f)
print(data1)

六 re模块

6.1 正则表达式

--正则表达式就是记录文本规则的代码

--可以查找操作符合某些负责规则的字符串

使用re模块实现正则表达式操作, 使用场景

--处理字符串

--处理日志

import re"""
compile():将字符串转换为正则表达式对象
prog:正则对象,可以直接调用匹配、替换、分割的方法。不需要再传入正则表达式
pattern:正则表达式
#prog = re.compile(pattern)
"""
# 匹配以 hello 开头的字符串
pattern = r"hello"
prog = re.compile(pattern)

6.2 匹配字符串

"""
匹配字符串
match():从字符串的开始处进行匹配
search():从整个字符串中搜索第一个匹配的值
findall():在整个字符串中搜索所有符合正则表达式的字符串,返回列表
pattern:正则表达式
string:要匹配的字符串
flags:可选,控制匹配方式- A:只进行ASCII匹配- I:不区分大小写- M:将 ^ 和 $ 用于包括整个字符串的开始和结尾的每一行- S:使用(.)字符匹配所有字符(包括换行符)
re.match(pattern,string,[flags])
re.search(pattern,string,[flags])
re.findall(pattern,string,[flags])
"""
# 匹配以 hello 开头的字符串
pattern = r"hello"
a1 = "hello today is a good day"
a2 = "today is a good day"
print(re.match(pattern, a1, re.I))
print(re.match(pattern, a2, re.I))

6.3 替换字符串

import re"""
替换字符串
pattern : 正则表达式
repl : 要替换的字符串
string : 要被查找替换的原始字符串
count : 可选,表示替换的最大次数,默认值为 0,表示替换所有匹配
flags : 可选,控制匹配方式
re.sub(pattern,repl,string,[count],[flags])
"""
# 匹配手机号码,开头为1,共11位
pattern = r"1[12346789]\d{9}"a1 = "中奖号码 123456,联系电话13112345623"
print(re.sub(pattern, "1xxxxxxxxxx", a1))

6.4 分割字符串

import re"""
分割字符串
pattern : 正则表达式
string : 要被查找替换的原始字符串
maxsplit : 可选,表示最大拆分次数
flags : 可选,控制匹配方式
re.split(pattern, string, [maxsplit], [flags])
"""
# 匹配 “:” 与 “/”的正则表达式
pattern = r"[:|/]"
a1 = "https://blog.csdn.net/weixin_50"
print(re.split(pattern, a1))

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...