python 常用模块

python 常用模块

简介:

模块 : 在python中一个py文件 可以理解为一个模块

不是所有的py文件都能作为一个模块来导入

如果能被导入的文件 模块文件必须要遵守命名规则

python中为了方便我们开发 提供了很多内置模块

使用 import 关键字导入

import time 导入整个模块

from random import randint 从模块中导入一个方法或者变量

from random import * 导入所有

import datatime as dt 取别名

from copy import deepcoty as dp 导入单个变量 取别名

OS模块 提供用来操作操作系统的方法

方法 说明
os.path.abspath(path) 返回绝对路径
os.path.basename(path) 返回文件名
os.path.commonprefix(list) 返回list(多个路径)中,所有path共有的最长的路径
os.path.dirname(path) 返回文件路径
os.path.exists(path) 如果路径 path 存在,返回 True;如果路径 path 不存在,返回 False。
os.path.lexists 路径存在则返回True,路径损坏也返回True
os.path.expanduser(path) 把path中包含的""和"user"转换成用户目录
os.path.expandvars(path) 根据环境变量的值替换path中包含的"$name"和"${name}"
os.path.getatime(path) 返回最近访问时间(浮点型秒数)
os.path.getmtime(path) 返回最近文件修改时间
os.path.getctime(path) 返回文件 path 创建时间
os.path.getsize(path) 返回文件大小,如果文件不存在就返回错误
os.path.isabs(path) 判断是否为绝对路径
os.path.isfile(path) 判断路径是否为文件
os.path.isdir(path) 判断路径是否为目录
os.path.islink(path) 判断路径是否为链接
os.path.ismount(path) 判断路径是否为挂载点
os.path.join(path1[, path2[, ...]]) 把目录和文件名合成一个路径
os.path.normcase(path) 转换path的大小写和斜杠
os.path.normpath(path) 规范path字符串形式
os.path.realpath(path) 返回path的真实路径
os.path.relpath(path[, start]) 从start开始计算相对路径
os.path.samefile(path1, path2) 判断目录或文件是否相同
os.path.sameopenfile(fp1, fp2) 判断fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2) 判断stat tuple stat1和stat2是否指向同一个文件
os.path.split(path) 把路径分割成 dirname 和 basename,返回一个元组
os.path.splitdrive(path) 一般用在 windows 下,返回驱动器名和路径组成的元组
os.path.splitext(path) 分割路径,返回路径名和文件扩展名的元组
os.path.splitunc(path) 把路径分割为加载点与文件
os.path.walk(path, visit, arg) 遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数
os.path.supports_unicode_filenames 设置是否支持unicode路径名
序号 方法及描述
1 os.access(path, mode) 检验权限模式
2 os.chdir(path) 改变当前工作目录
3 os.chflags(path, flags) 设置路径的标记为数字标记。
4 os.chmod(path, mode) 更改权限
5 os.chown(path, uid, gid) 更改文件所有者
6 os.chroot(path) 改变当前进程的根目录
7 os.close(fd) 关闭文件描述符 fd
8 os.closerange(fd_low, fd_high) 关闭所有文件描述符,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略
9 os.dup(fd) 复制文件描述符 fd
10 os.dup2(fd, fd2) 将一个文件描述符 fd 复制到另一个 fd2
11 os.fchdir(fd) 通过文件描述符改变当前工作目录
12 os.fchmod(fd, mode) 改变一个文件的访问权限,该文件由参数fd指定,参数mode是Unix下的文件访问权限。
13 os.fchown(fd, uid, gid) 修改一个文件的所有权,这个函数修改一个文件的用户ID和用户组ID,该文件由文件描述符fd指定。
14 os.fdatasync(fd) 强制将文件写入磁盘,该文件由文件描述符fd指定,但是不强制更新文件的状态信息。
15 [os.fdopen(fd, mode[, bufsize]]) 通过文件描述符 fd 创建一个文件对象,并返回这个文件对象
16 os.fpathconf(fd, name) 返回一个打开的文件的系统配置信息。name为检索的系统配置的值,它也许是一个定义系统值的字符串,这些名字在很多标准中指定(POSIX.1, Unix 95, Unix 98, 和其它)。
17 os.fstat(fd) 返回文件描述符fd的状态,像stat()。
18 os.fstatvfs(fd) 返回包含文件描述符fd的文件的文件系统的信息,像 statvfs()
19 os.fsync(fd) 强制将文件描述符为fd的文件写入硬盘。
20 os.ftruncate(fd, length) 裁剪文件描述符fd对应的文件, 所以它最大不能超过文件大小。
21 os.getcwd() 返回当前工作目录
22 os.getcwdu() 返回一个当前工作目录的Unicode对象
23 os.isatty(fd) 如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False。
24 os.lchflags(path, flags) 设置路径的标记为数字标记,类似 chflags(),但是没有软链接
25 os.lchmod(path, mode) 修改连接文件权限
26 os.lchown(path, uid, gid) 更改文件所有者,类似 chown,但是不追踪链接。
27 os.link(src, dst) 创建硬链接,名为参数 dst,指向参数 src
28 os.listdir(path) 返回path指定的文件夹包含的文件或文件夹的名字的列表。
29 os.lseek(fd, pos, how) 设置文件描述符 fd当前位置为pos, how方式修改: SEEK_SET 或者 0 设置从文件开始的计算的pos; SEEK_CUR或者 1 则从当前位置计算; os.SEEK_END或者2则从文件尾部开始. 在unix,Windows中有效
30 os.lstat(path) 像stat(),但是没有软链接
31 os.major(device) 从原始的设备号中提取设备major号码 (使用stat中的st_dev或者st_rdev field)。
32 os.makedev(major, minor) 以major和minor设备号组成一个原始设备号
33 [os.makedirs(path, mode]) 递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹。
34 os.minor(device) 从原始的设备号中提取设备minor号码 (使用stat中的st_dev或者st_rdev field )。
35 [os.mkdir(path, mode]) 以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制)。
36 [os.mkfifo(path, mode]) 创建命名管道,mode 为数字,默认为 0666 (八进制)
37 [os.mknod(filename, mode=0600, device]) 创建一个名为filename文件系统节点(文件,设备特别文件或者命名pipe)。
38 [os.open(file, flags, mode]) 打开一个文件,并且设置需要的打开选项,mode参数是可选的
39 os.openpty() 打开一个新的伪终端对。返回 pty 和 tty的文件描述符。
40 os.pathconf(path, name) 返回相关文件的系统配置信息。
41 os.pipe() 创建一个管道. 返回一对文件描述符(r, w) 分别为读和写
42 [os.popen(command, mode[, bufsize]]) 从一个 command 打开一个管道
43 os.read(fd, n) 从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。
44 os.readlink(path) 返回软链接所指向的文件
45 os.remove(path) 删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory。
46 os.removedirs(path) 递归删除目录。
47 os.rename(src, dst) 重命名文件或目录,从 src 到 dst
48 os.renames(old, new) 递归地对目录进行更名,也可以对文件进行更名。
49 os.rmdir(path) 删除path指定的空目录,如果目录非空,则抛出一个OSError异常。
50 os.stat(path) 获取path指定的路径的信息,功能等同于C API中的stat()系统调用。
51 [os.stat_float_times(newvalue]) 决定stat_result是否以float对象显示时间戳
52 os.statvfs(path) 获取指定路径的文件系统统计信息
53 os.symlink(src, dst) 创建一个软链接
54 os.tcgetpgrp(fd) 返回与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组
55 os.tcsetpgrp(fd, pg) 设置与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组为pg。
56 [os.tempnam(dir[, prefix]]) 返回唯一的路径名用于创建临时文件。
57 os.tmpfile() 返回一个打开的模式为(w+b)的文件对象 .这文件对象没有文件夹入口,没有文件描述符,将会自动删除。
58 os.tmpnam() 为创建一个临时文件返回一个唯一的路径
59 os.ttyname(fd) 返回一个字符串,它表示与文件描述符fd 关联的终端设备。如果fd 没有与终端设备关联,则引发一个异常。
60 os.unlink(path) 删除文件路径
61 os.utime(path, times) 返回指定的path文件的访问和修改的时间。
62 [os.walk(top, topdown=True[, onerror=None[, followlinks=False]]]) 输出在文件夹中的文件名通过在树中游走,向上或者向下。
63 os.write(fd, str) 写入字符串到文件描述符 fd中. 返回实际写入的字符串长度
64 os.path 模块 获取文件的属性信息。

sys模块 系统相关的方法

属性或方法 描述
sys.argv 获取命令行参数列表,第一个参数是程序本身
sys.exit(n) 退出 Python 程序,exit(0) 表示正常退出。当参数非 0 时,会引发一个 SystemExit 异常,可以在程序中捕获该异常
sys.version 获取 Python 解释程器的版本信息
sys.maxsize 最大的 Int 值,在 64 位操作系统上是 263-1
sys.path 返回模块的搜索路径,初始化时使用 PYTHONPATH 环境变量的值
sys.platform 返回操作系统平台名称
sys.stdin 输入相关
sys.stdout 输出相关
sys.stderr 错误相关
sys.exc_infd() 返回异常信息三元元组
sys.getdefaultencoding() 获取系统当前编码,默认为 UTF-8
sys.setdefaultencoding() 设置系统的默认编码
sys.getfilesystemencoding() 获取文件系统使用编码方式,默认是 UTF-8
sys.modules 以字典的形式返回所有当前 Python 环境中已经导入的模块
sys.builtin_module_names 返回一个列表,包含所有已经编译到 Python 解释器里的模块的名字
sys.copyright 当前 Python 的版权信息
sys.flags 命令行标识状态信息列表
sys.getrefcount(object) 返回对象的引用数量
sys. getrecursionlimit() 返回 Python 最大递归深度,默认为 1000
sys.getsizeof(object[, default]) 返回对象的大小
sys.getswitchinterval() 返回线程切换时间间隔,默认为0.005秒
sys.setswitchinterval(interval) 设置线程切换的时间间隔,单位为秒
sys. getwindowsversion() 返回当前 Windows 系统的版本信息
sys.hash_info 返回 Python 默认的哈希方法的参数
sys.implementation 当前正在运行的 Python 解释器的具体实现,如 CPython
sys.thread_info 当前线程信息

math 数学相关的模块

ceil 取大于等于x的最小的整数值,如果x是一个整数,则返回x
copysign 把y的正负号加到x前面,可以使用0
cos 求x的余弦,x必须是弧度
degrees 把x从弧度转换成角度
e 表示一个常量
exp 返回math.e,也就是2.71828的x次方
expm1 返回math.e的x(其值为2.71828)次方的值减1
fabs 返回x的绝对值
factorail 取x的阶乘的值
floor 取小于等于x的最大的整数值,如果x是一个整数,则返回自身
fmod 得到x/y的余数,其值是一个浮点数
frexp 返回一个元组(m,e),其计算方式为:x分别除0.5和1,得到一个值的范围
fsum 对迭代器里的每个元素进行求和操作
gcd 返回x和y的最大公约数
hypot 如果x是不是无穷大的数字,则返回True,否则返回False
isfinite 如果x是正无穷大或负无穷大,则返回True,否则返回False
isinf 如果x是正无穷大或负无穷大,则返回True,否则返回False
isnan 如果x不是数字True,否则返回False
ldexp 返回x*(2**i)的值
log 返回x的自然对数,默认以e为基数,base参数给定时,将x的对数返回给定的base,计算式为:log(x)/log(base)
log10 返回x的以10为底的对数
log1p 返回x+1的自然对数(基数为e)的值
log2 返回x的基2对数
modf 返回由x的小数部分和整数部分组成的元组
pi 数字常量,圆周率
pow 返回x的y次方,即x**y
radians 把角度x转换成弧度
sin 求x(x为弧度)的正弦值
sqrt 求x的平方根
tan 返回x(x为弧度)的正切值
trunc 返回x的整数部分

random 模块 用来生成随机数

randint() 随机生成一个整数 左闭右闭
randrange() 随机生成一个整数 左闭右开
random() 随机生成一个0-1的浮点数
uniform(2,5) 随机生成指定的区间内的浮点数
choice(iter,k=2) 随机返回一个值 如果设置k值 则获得指定的权重数量
sample(population, k) 从可迭代对象中随机返回k个元素,返回一个列表。
shuffle() 将可迭代对象的顺序随机打乱 直接对可迭代对象进行修改

datetime 模块 datetime/date/time/timedelta

1、date类

datetime.date(year,month,day)

常用的类方法与属性:

date.max 对象所能表示的最大日期(9999-12-31)
date.min 对象所能表示的最小日期(0001-01-01)
date.today() 返回一个表示当前本地时间的date对象
date.resolution date对象表示日期的最小单位(天)
date.fromtimestamp(timestamp) 根据给定的时间戳,返回一个date对象

d.year
d.month
d.day
d.replace(year[,month[,day]]) 生成并返回一个新的日期对象,原日期对象不变
d.timetuple() 返回日期对应的时间元组(time.struct_time)对象
d.toordinal()
返回日期是自0001-01-01开始的第多少天
d.weekday() 返回日期是星期几,[0,6],0表示星期一,1表示星期二
d.isoweekday() 返回日期是星期几,[1,7],1表示星期一,2表示星期二
d.isocalendar() 返回格式为(year,weekday,isoweekday)的元组
d.isoformat() 返回‘YYYY-MM-DD’格式的日期字符串
d.strftime() 自定义格式化字符串(和time模块的strftime()方法相同)

4、timedelta类

时间加减(代表了两个datetime之间的时间差)

datetime.timedalta(days=0,seconds=0,microseconds=0,milliseconds=0,minutes=0 ,hours=0,weeks=0)

在日期上做天,小时,分钟,秒,毫秒,微秒,周 的时间计算

其中,timedelta内部只存储 days,seconds,microseconds

方法与属性:

td.days 天(范围[-999999999,999999999])
td.seconds 秒(范围[0,86399])
td.microseconds 微秒(范围[0,999999])
td.total_seconds() 以秒为单位返回该时间差

time 模块

calendar 模块 日历模块

hashlib 模块 hmac 模块 都是用来数据加密的模块

#md5(), sha1(), sha224(), sha256(), sha384(), sha512(), blake2b(), blake2s(),
#sha3_224, sha3_256, sha3_384, sha3_512, shake_128, and shake_256.

import hashlib

x = hashlib.md5()# 生成对象
x.update('abc'.encode('utf-8')) # 使用编码方式
print ("md5-value:",x.hexdigest()) 

copy 模块

deepcopy() 深拷贝

copy() 浅拷贝

uuid 模块 用来生成一个全局唯一的字符串

uuid所生成的都是36位字符串

uuid.uuid1()
从MAC地址,序列号和当前时间生成UUID,
最后的12个字符对应的就是MAC地址,由此生成可能会暴露MAC地址。
uuid.uuid3()
里面的namespace和具体的字符串都是我们指定的,使用MD5生成UUID
uuid.uuid4()
生成一个随机UUID
uuid.uuid5()
此方法和uuid3写法是一样的,只不过是使用sha1生成UUID

pip 命令的使用 管理第三方包的使用

  1. pip install 包名 安装第三方模块
  2. pip uninstall 包名 卸载第三方模块
  3. pip list 用来列出当前环境安装了那些模块
  4. pip freeze 用来列出当前环境安装的模块名和版本号
  5. pip freeze > requirements.txt 将代码需要的依赖和版本号重定向到指定的文件内
  6. pip install -r requirements.txt 读取文件里的模块名并安装
  7. pip install flask -i http://pypi.douban.com/simple 指定国内的下载路径 //零时修改

自定义模块

规则: 必须由数字字母下划线组成的不能由数字开头

导入后 可以使用 变量 和 方法

__ all __ 表示 模块向外暴露的变量和方法

__ name __ 表示 一些不想在导入模块中执行的方法

#my_model.py
# _name='zzy'   变量 或 方法前面添加 _ 表示不建议其他模块的访问
x = 10
def a():
    print('hello')
# del x 删除 这个元素 别的模块不能访问
if __name__ == '__main__':
    a()


#test_mymodel.py
import my_model
my_model.a()

包的概念

简介 : 包就是一个文件夹 通过 from 文件夹名 / import 模块名 导入

__ init __ .py 文件 : 导入其他模块

posted @ 2021-08-18 18:41  zhiy  阅读(86)  评论(0)    收藏  举报