python内置库之os、sys、math、datetime、json、re

一 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 math

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值