内置库 os
os 常用方法
- 系统相关
- 操作目录
- 操作路径
os 操作系统相关
- os.name:获取系统名称
- os.environ:获取系统环境变量信息
- os.getenv(‘PATH’):获取指定名称的环境变量信息
- os.system():执行系统指令
import os
# os.name:获取系统名称 nt代表window,posix代表linux
print(os.name)
# os.environ:获取系统环境变量信息
print(os.environ)
# os.getenv('PATH'):获取指定名称的环境变量信息
print(os.getenv('PATH'))
# os.system():执行系统指令
os.system('pwd') # linux系统
print(os.system('dir')) # windows系统
os 目录相关
- os.getcwd():获取当前目录
- os.chdir():切换目录
- os.listdir():列出当前目录内容
- os.mkdir():创建空目录
- os.makedirs():递归创建多级目录
- os.rmdir():删除空目录
- os.rename():重命名目录
- os.remove():删除文件
"""目录相关"""
import os
# 获取当前所在目录 get current directory
print(os.getcwd())
# 切换目录 change directory
os.chdir('..')
# 列出当前目录下的所有文件
print(os.listdir())
# 创建空目录
os.mkdir('new')
# 递归创建多级空目录
os.makedirs('a/b/c')
# 删除空目录
os.rmdir('new')
# 重命名目录
os.rename('a', 'a1')
# 删除文件
os.remove('demo.txt')
os 路径相关
path 方法 | 说明 |
---|---|
os.path.abspath(path) | 返回绝对路径 |
os.path.basename(path) | 返回文件名 |
os.path.dirname(path) | 返回文件路径 |
os.path.split(path) | 分割路径 |
os.path.join(path) | 拼接路径 |
os.path.exists(path) | 判断路径是否存在 |
os.path.isdir(path) | 判断是否是目录 |
os.path.isfile(path) | 判断是否是文件 |
os.path.getsize(path) | 获取文件大小 |
os 路径用法实例
# os 路径用法实例
# 返回绝对路径
import os
print(os.path.abspath("./os_demo.py"))
# 返回文件名
print(os.path.basename("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
# 返回文件路径
print(os.path.dirname("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
# 分割路径
print(os.path.split("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
# 拼接路径
print(os.path.join("/Users/xiaofo/coding/pythonProject/course", "os_demo.py"))
# 判断路径是否存在
print(os.path.exists("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
print(os.path.exists("./os_demo.py"))
# 判断是否是目录
print(os.path.isdir("../demos"))
# 判断是否是文件
print(os.path.isfile("./hello.py"))
# 获取文件大小
print(os.path.getsize("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
内置库 sys
sys 概述
- 是 Python 自带的内置模块
- 是与 Python 解释器交互的桥梁
sys 使用
- 常用属性
- 常用方法
- 导入 sys 模块
# 导入sys模块
import sys
# 查看sys模块帮助文档
help(sys)
# 查看sys模块的属性和方法
print(dir(sys))
sys 常用属性
- sys.version:返回 Python 解释器版本
- sys.platform:返回操作系统平台名称
- sys.argv:返回外部向程序传递的参数
- sys.modules:返回已导入的模块信息
- sys.path:返回导包的搜索路径列表
"""sys模块常用属性"""
import sys
# 返回Python 解释器版本
print(sys.version)
# 返回操作系统平台名称
print(sys.platform)
# 返回外部向程序传递的参数
print(sys.argv)
# 返回已导入的模块信息
print(sys.modules)
print(sys.modules.keys())
# 返回导包的搜索路径列表
print(sys.path)
sys 常用方法
- sys.getdefaultencoding():获取编码方式
- sys.exit():运行时退出
"""sys模块常用方法"""
import sys
# 获取系统当前编码
print(sys.getdefaultencoding()) #打印 utf-8
# 运行时退出
sys.exit()
Python 内置库 - 文件处理
文件操作步骤
- 打开文件
- 操作文件:读/写内容
- 关闭文件(读写完成,要及时的关闭)
open 方法
def open(file, mode='r', buffering=None,
encoding=None, errors=None, newline=None,
closefd=True):
文件读写模式
实战1
# 第一步:(以只读模式)打开文件
f = open('data.txt', 'r', encoding='utf-8')
# 第二步:读取文件内容
print(f.read())
# 第三步:关闭文件
f.close()
读操作
忘记关闭文件的危害
- 打开文件达到一定数量, 将会导致打开失败
- 占用内存空间,非常浪费资源
- 会导致系统自动回收资源,而丢失数据
with 用法
with open('data.txt', 'r', encoding='utf-8') as f:
print(f.read())
print(f.closed) ## 查看关闭状态 打印True
总结
- 使用 with 方法,会自动完成关闭操作
- 通过 python 封装的 API,可以实现读,写,追加操作
- 文件打开要使用utf-8的编码格式(以免中文出现乱码)
Python 内置库 - 科学计算
math 函数操作
- 数字常数
- 数论与表示函数
- 幂对数函数
- 三角对数函数
- 高等特殊函数
数字常量
常数 | 数学表示 | 描述 |
---|---|---|
math.pi | π | 圆周率,值为3.1415926535… |
math.e | e | 自然对数,值为2.7182818… |
math.inf | ∞ | 正无穷大,负无穷-math.inf |
math.nan | NAN | 非数字 NAN(Not a Number) |
Python 日期与时间处理
工作中应用
- 作为日志信息的内容输出
- 计算某个功能的执行时间
- 用日期命名一个日志文件的名称
- 生成随机数(时间是不会重复的)
python 中处理时间的模块
- time
- datetime
- calendar
常见的时间表示形式
- 时间戳
- 格式化的时间字符串
datetime 常用的类
- datetime (from datetime import datetime) 时间日期相关
- timedelta (from datetime import timedelta) 计算两个时间的时间差
- timezone (from datetime import timezone) 时区相关
练习1 - 获取当前日期和时间
import datetime
now = datetime.datetime.now()
print(now)
练习2 - 字符串与时间互转
import datetime
s="2021-09-27 06:47:06"
# 将字符串 转换为datetime实例
s1=datetime.datetime.strptime(s,'%Y-%m-%d %H:%M:%S') #2021-09-27 06:47:06
print(s1)
# 时间转成字符串
now = datetime.datetime.now()
result = now.strftime('%a, %b %d %H:%M')
print(result) #Sat, Apr 22 15:05
# 参考链接:https://docs.python.org/3/library/datetime.html?highlight=strftime
练习3 - 时间戳 与时间互转
import datetime
mtimestamp = 1632725226.129461
# 将时间戳转成时间
s = datetime.datetime.fromtimestamp(mtimestamp)
print(s) #2021-09-27 14:47:06.129461
# 将时间转成时间戳
print(s.timestamp()) #1632725226.129461
内置库 json
-
SON 是用于存储和交换数据的语法,是一种轻量级的数据交换格式。
-
使用场景
- 接口数据传输
- 序列化
- 配置文件
-
键值对形式
-
数组形式
{
"language": [
{
"name": "python",
"url": "https://www.python.org/"
},
{
"name": "java",
"url": "https://www.java.com/zh-CN/"
}
]
}
Python 与 JSON 数据类型对应
json 库
- 可以从字符串或文件中解析 JSON
- 该库解析 JSON 后将其转为 Python 字典或者列表
常用方法
-
dumps()
:将 Python 对象编码成 JSON 字符串 -
loads()
:解码 JSON 数据,该函数返回 Python 对象 -
dump()
: Python 对象编码,并将数据写入 json 文件中 -
load()
:从 json 文件中读取数据并解码为 Python 对象
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': None}]
# 写入 JSON 数据,在代码当前目录生成一个 data.json 的文件
with open('data.json', 'w') as f:
json.dump(data, f)
# 读取数据,读取 json 文件并解码成 python 对象
with open('data.json', 'r') as f:
data = json.load(f)
print(data) #打印:[{'a': 1, 'b': '2', 'c': True, 'd': False, 'e': None}]
dumps 常用参数
-
indent
:根据数据格式缩进显示,默认为 None,没有缩进 -
ensure_ascii
:对中文使用 ASCII 编码,默认为 True
import json
data = {
'a': 1,
'b': '霍格沃兹',
'c': True,
'd': False,
'e': None }
python_data = json.dumps(data, indent=4, ensure_ascii=False)
print(python_data)
#打印结果
# {
# "a": 1,
# "b": "霍格沃兹",
# "c": true,
# "d": false,
# "e": null
# }