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 命令的使用 管理第三方包的使用
- pip install 包名 安装第三方模块
- pip uninstall 包名 卸载第三方模块
- pip list 用来列出当前环境安装了那些模块
- pip freeze 用来列出当前环境安装的模块名和版本号
- pip freeze > requirements.txt 将代码需要的依赖和版本号重定向到指定的文件内
- pip install -r requirements.txt 读取文件里的模块名并安装
- 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 文件 : 导入其他模块