path
from os import path
import os
cwd = os.getcwd()
print(cwd) #获取当前脚本文件目录
filename = __file__ #
print(filename) #当前脚本绝对路径
#目录或文件的切割
print(path.split(filename)) #('D:/python笔记/day23模块一/day23-Python常用模块一', 'path模块复习.py')
# 返回一个元祖,第一个元素:文件所处目录 第二个元素:文件或目录名称
print(path.split(cwd)) #('D:\\python笔记\\day23模块一', 'day23-Python常用模块一')
#判断是否文件
print(path.isfile(filename)) #True
print(path.isfile(cwd)) #False
#判断是否是目录
print(path.isdir(filename)) #False
print(path.isdir(cwd)) #True
#文件夹包含的文件或文件夹的名字的列表
print(os.listdir('.')) #当前目录,
print(os.listdir('E:/')) #也可以指定
#判断文件或目录是否存在
print(path.exists(filename)) #True
print(path.exists(cwd)) #True
print(path.exists('E:/123')) #False
#文件后缀名的切割
print('aaa.jpg'.split('.')[-1]) #jpg
print(path.splitext('aaa.jpg')[-1]) #.jpg
#获取文件名称
print(path.basename(filename))
print(path.basename(cwd))
#获取文件或目录所在的目录
print(filename)
print(path.dirname(filename))
print(path.dirname('./作业')) #.:代表当前目录
sys
import sys
# 包和模块的查找目录列表,python解释器会按照这个列表的顺序依次查找包和模块
# 管理模块名称的字典 sys.modules是一个全局字典,
# 该字典是python启动后就加载在内存中。每当程序员导入新的模块,
# sys.modules都将记录这些模块。字典sys.modules对于加载模块起到了缓冲的作用。
# 当某个模块第一次导入,字典sys.modules将自动记录该模块。当第二次再导入该模块时,
# python会直接到字典中查找,从而加快了程序运行的速度。
print(sys.modules) #所有安装的包和模块。存放在D:\python3\Lib\site-packages
# 一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。
# 当我们使用import语句的时候,Python解释器是怎样找到对应的文件的呢?
# 这就涉及到Python的搜索路径,搜索路径是由一系列目录名组成的,Python解释器就依次从这些目录中去寻找所引入的模块。
# 这看起来很像环境变量,事实上,也可以通过定义环境变量的方式来确定搜索路径
#python解释器版本
print(sys.version) #3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)]
#平台解释器版本而不是你的操作系统
#32位的程序能够运行64位的电脑上,但是64位的程序不能运行在32位的操作系统
print(sys.platform) #win32
#默认的编码信息
print(sys.getdefaultencoding()) #utf-8
#默认文件系统编码信息
print(sys.getfilesystemencoding()) #utf-8
math
与数学运算相关的模块
import math
#求次方
print(math.pow(2,3)) #8.0
print(math.pow(2,2)) #4.0
#返回数字的上入整数
print(math.ceil(2.23)) #3 对一个数进行向上取整
#返回数字的下舍整数
print(math.floor(2.23)) #2 对一个数进行向上取整
#求平方根
print(math.sqrt(23)) #4.795831523312719
print(math.sqrt(4)) #2.0
#求阶乘
print(math.factorial(5)) #120
#求直角的斜边长
print(math.hypot(3,4)) #5.0
print(math.log10(100)) # 以10为底数的对角函数
random
import random
# 获取一个0-1之间的随机小数
print(random.random())
#获取指定范围的小数,包含两端,第二位数不能比第一位大
print(random.uniform(1,10)) #5.705302863360474
print(random.uniform(2,5)) #4.131115868398357
print(random.uniform(1,5)) #3.184356161506939
print(random.uniform(50,50)) #包含两端 50.0
#获取指定范围内的整数,包含两端
print(random.randint(1,10)) #2
print(random.randint(2,5)) #3
print(random.randint(1,5)) #4
print(random.randint(50,50)) #包含两端 50
#randrange函数,获取从0开始不包含参数本身
print(random.randrange(1)) #0
print(random.randrange(1,2)) #1
# choices函数--->返回的list(序列对象--->获取某个元素)
a_list = [1,2,3,4,5,6,7]
print(random.choices(a_list,k=5)) #k可以指定获取几个元素,不写就随机获取一个元素
#根据权重来获取
a_list = [1,2,3,4,5]
print(random.choices(a_list,weights=[60,10,20,30,50])) #[1]
#sample函数,和choices相似,只是不支持权重
a_list = [1,2,3,4,5]
print(random.sample(a_list,k=2)) #[5,4]
#打乱顺序shuffle
b_list = [1,2,3,4,5,6,7]
random.shuffle(b_list)
print(b_list) #[1, 4, 7, 5, 3, 2, 6]