自学Python5.3-内置模块(1)

时间:2023-03-08 16:58:33

自学Python之路-Python基础+模块+面向对象
自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django

自学Python6.3-内置模块(os、sys、hashlib、random、json & pickle &shelve)

内置模块是Python自带的功能,在使用内置模块相应的功能时,需要  先导入 再 使用。

  • python中导入模块使用关键字 import如果是本地导入文件,直接使用:import filename
  • 如果导入的是一个包,该包下面必须是有__init__.py 文件才可以导入,否则报错,只有有了__init__.py 文件,python 解析器才会把这个目录当成是的包。

 1.OS模块      

用于提供系统级别的操作: 

os.getcwd()                 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.makedirs('dir1/dir2') 可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","new") 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
os.sep 操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep 当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 用于分割文件路径的字符串
os.name 字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 运行shell命令,直接显示
os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间

2.sys模块

用于提供对Python解释器相关的操作: 

sys.argv           命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
sys.stdin 输入相关
sys.stdout 输出相关
sys.stderror 错误相关

3.hashlib模块

 hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法

4.random模块

# 随机小数
random.random() #用于生成一个0到1的随机浮点数:0<= n < 1.0
random.uniform(a,b) #用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。
# 随机整数
random.randint(a, b) #用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
random.randrange([start], stop[, step]) #从指定范围内,按指定基数递增的集合中 获取一个随机数。
# 随机选择一个返回
random.choice(sequence) # 从序列中获取一个随机元素
# 打乱列表顺序
random.shuffle(x[, random]) # 用于将一个列表中的元素打乱,即将列表内的元素随机排列。
# 随机选择多个返回,返回的个数为函数第二个参数
random.sample(sequence, k) # 从指定序列中随机获取指定长度的片断并随机排列。注意:sample函数不会修改原有序列。

自学Python5.3-内置模块(1)

自学Python5.3-内置模块(1)

自学Python5.3-内置模块(1)

自学Python5.3-内置模块(1)

自学Python5.3-内置模块(1)

自学Python5.3-内置模块(1)

自学Python5.3-内置模块(1)

5.json & pickle &shelve序列化模块

数据类型转化成字符串的过程就是序列化,主要是为了方便存储和网络传输。

  • json,用于字符串 和 python数据类型间进行转换 (两端可以是不同语言) 。json模块提供了四个功能:dumps、dump(和文件有关)、loads、load(load不能load多次)。
  • pickle,用于python特有的类型 和 python的数据类型间进行转换(两端必须使用python语言)。 pickle模块提供了四个功能:dumps、dump、loads、load(方法和json一样)。
  • shelve,open方法,open方法获取了一个文件句柄。
import pickle
f = open('user_acc.txt','wb')
data = {
'k1':123 ,
'k2':'hello'
}
f.write(pickle.dumps(data))
f.close()

自学Python5.3-内置模块(1)

import pickle
f = open('user_acc.txt','rb')
data_from=pickle.loads(f.read()) # data_from=pickle.load(f))
for i in data_from:
print(data_from)

输出结果:  {'k1': 123, 'k2': 'hello'} 

6.