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))

相关内容

热门资讯

AI做攻略、“双向奔赴”……国... 本文转自:人民网人民网记者 许维娜今年国庆假期,AI(人工智能)成了不少年轻人的“旅行搭子”。行前做...
合肥的这个“梗”, 翻篇了 社交平台的评论区,曾长期流传一句专属于合肥的黑色幽默。有人问合肥哪里好玩,本地网友半开玩笑地回复:合...
7万+旅游中高层都在的群,今天... 做旅游这行,资源卡位、渠道互通、项目落地——往往就差一个“对的机会”。我们的行业社群已聚集70,00...
一场帐篷音乐节,如何让井研从“... 帐篷音乐节现场封面新闻记者 周洪攀10月的研溪湿地,晚风里裹着柑橘的清甜与民谣的回响。夜幕降临,10...
白鹤翩翩落星愿,上海迪士尼度假... 10月9日,世界候鸟日前夕,上海迪士尼度假区星愿公园的湖风里多了一分白鹤的灵动。三座白鹤雕塑正式揭幕...
成都锦江边赏初秋枫叶飘飘 目前,成都锦江边国华街枫叶树红了。近年来,国华街附近的几条街都栽种了红枫树,是城区较集中看枫叶的点位...
GBTA:商务旅行正在复苏,但... 亚太正在成为全球商务旅行增长的重要引擎。在经历疫情后的快速反弹之后,全球商务旅行正在进入一个新的增长...
从景区焕新到节赛引流 邹城双节... 齐鲁网·闪电新闻10月9日讯 中秋、国庆“双节”假期,邹城市文化和旅游局提前谋划、周密部署,立足自身...
江山如此多娇 且看石楼今朝 金秋十月,黄河岸畔秋意盎然,丰收盛会喜迎国庆。本次石楼国庆文旅活动以“江山如此多娇,且看石楼今朝”为...
海南国庆假期接待游客475.4... 2026年国庆假期,海南接待游客475.40万人次,较2025年增长13.1%,较2024年增长15...