python之内置库1

内置库

一、内置库OS

1、os概述

1)os: Operating System
2)os 模块的常用功能
3)跨平台的差异

2、os使用

1)导入 os 模块
2)查看 os 模块使用文档
    help(os)
    dir(os)
import os

# 查看os模块说明文档
help(os)

# 查看os模块的属性和方法
print(dir(os))

3、os 常用方法

(1)系统相关

  • os.name:获取系统名称
  • os.environ:获取系统环境变量信息
  • os.getenv(‘PATH’):获取指定名称的环境变量信息
  • os.system():执行系统指令
import os
dir(os)

# 获取操作系统的名称 nt是window系统 posix是是limux系统
print(os.name)

# 获取系统环境变量信息,以字典形式展现
print(os.environ)

# 获取指定名称的环境变量信息
print(os.getenv("chrom"))

# 执行系统命令
# linux系统
os.system('pwd')
# windows系统
print(os.system("dir"))

(2)操作目录

  • os.getcwd():获取当前目录
  • os.chdir():切换目录
  • os.listdir():列出当前目录内容
  • os.mkdir():创建空目录
  • os.makedirs():递归创建多级目录
  • os.rmdir():删除空目录
  • os.rename():重命名目录
  • os.remove():删除文件
"""目录相关"""
# 获取当前所在目录 E:\python_test\Reptile Fiction
print(os.getcwd())
# 切换目录 change directory
os.chdir('..')
# # 列出当前目录下的所有文件
print(os.listdir())  # ['.idea', 'a1', 'chromedriver.exe', 'fiction.py', 'homework_test.py', 'main.py', 'zhihu.py']
# # 创建空目录
os.mkdir('new')
# # 递归创建多级空目录
os.makedirs('a/b/c')
# # 删除空目录
os.rmdir('new')
# # 重命名目录
os.rename('a', 'a1')
# # 删除文件
os.remove('demo.txt')

(3)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) 获取文件大小

二、内置库-sys

1、sys概述

  • 是 Python 自带的内置模块
  • 是与 Python 解释器交互的桥梁

2、sys使用

# 导入sys模块
import sys

# 查看sys模块帮助文档
help(sys)

# 查看sys模块的属性和方法
print(dir(sys))

3、常用属性

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

--------------------------------->
3.9.7 (tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38) [MSC v.1929 64 bit (AMD64)]
win32

4、常用方法

  • sys.getdefaultencoding():获取编码方式
  • sys.exit():运行时退出
"""sys模块常用方法"""
# 获取系统当前编码
print(sys.getdefaultencoding())

# 运行时退出
sys.exit()
# 退出后显示error
sys.exit(error)

三、内置库-IO

1、IO概念

IO就是input和output

2、文件操作步骤

  • 打开文件

  • 操作文件:读/写内容

  • 关闭文件(读写完成,要及时的关闭)

    • file:文件路径;
    • mode:读取模式
    • buffering:缓冲区的大小(默认为-1,0为关闭缓冲区,1遇到换行符才写入磁盘)
    • encoding:编码
    • errors:遇到编码/解码错误时是否抛出来
    • newline:换行符,如-r,-n
    • closefd:文件描述符
def open(file, mode='r', buffering=None, 
encoding=None, errors=None, newline=None, 
closefd=True)

3、文件读写方式

图片

4、读操作

5、写操作

  • mode=“w+”, 读写权限,会新建文件,清空内容再写入
  • mode=“r+”, 读写权限,替换原来的内容
  • mode=“a+”, 读写权限,追加内容
# 打开文件(以只读的方式)
f = open('data', 'r', encoding='utf-8')

# 读取全部内容
print(f.read())
# 读取括号前的内容
print(f.read(10))
# 查看读取内容的类型
result = f.read()
print(type(result))
# 设置初始化游标位置
f.seek(0)
# readlines的类型是list,readline的类型是str
result2 = f.readlines()
print(type(result2))
# 读取1行内容
print(f.readline())

# 关闭文件
f.close()
print(f'文件已关闭')

6、 忘记关闭文件的危害

  • 打开文件达到一定数量, 将会导致打开失败
  • 占用内存空间,非常浪费资源
  • 会导致系统自动回收资源,而丢失数据

7、 with 用法

使用with方法,会自动关闭操作

with open('data.txt', 'r', encoding='utf-8') as f:
    print(f.read())
print(f.closed)   ## 查看关闭状态

总结

1)使用 with 方法,会自动完成关闭操作
2)通过 python 封装的 API,可以实现读,写,追加操作
3)文件打开要使用utf-8的编码格式(以免中文出现乱码)

四、内置库-科学计算

1、math函数

math 函数,python 提供的内置数学类函数库,包含了很多数学公式。
比如幂函数运算,三角函数,高等函数运算等

2、math函数操作

1)数字常数
2)数论与表示函数
3)幂对数函数
4)三角对数函数
5)高等特殊函数

3、数字常量

图片

4、数论与表示函数

5、幂函数与对数函数

6、三角函数

7、高等特殊函数

实战练习

常量
数论与表示函数(ceil, floor)
幂函数与对数函数 (pow(), sqrt())
import math

"""数字常量"""
print(math.pi)
print(math.e)
print(math.inf)
print(math.nan)
"""数论与表示函数"""
# 向上取整,取>4.3 的最小的整数5
print(math.ceil(4.3))
# 向上取整,取>-4.3 的最小的整数-4
print(math.ceil(-4.3))
# 向下取整,取<4.3 的最大的整数4
print(math.floor(4.3))
# 向下取整,取<-4.3 的最大的整数-5
print(math.floor(-4.3))
"""幂函数与对数函数"""
print(math.pow(2, 10))
print(math.sqrt(3))


"""
练习:天天向上的力量

一年365天,以第1天的能力值为基数,记为1.0,
当努力学习时,能力值相比前一天提高1%,
当没有学习时能力值相比前一天下降1%。
(每天努力和每天放任,一年下来的能力值相差多少呢? )
"""
# 当努力学习时,能力值相比前一天提高1%
print(math.pow((1.0 + 0.01), 365))
# 当没有学习时能力值相比前一天下降1%
print(math.pow((1.0 - 0.01), 365))