1,什么是模块
2,模块的分类
3,如何导入模块或自定义模块
4,常见的系统模块简析 random,math,os,os.path
我们之前在Python解释器上写的Python程序,建立了那么多函数,但是只要退出了解释器,我们定义的变量和函数都消失了;牛顿有句话说的好:要站在巨人的肩膀上;也就是一切都最好不要从零开始;于是乎,Python就提供了一个办法:把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件就被称为模块。
所有的python模块都放在了这个地方,调用和导入第三方模块都是在这里进行的,而且所有的模块文件都是py格式C:\Users\95385\AppData\Local\Programs\Python\Python37\Lib
Python中的模块大致能分为以下几类:
若想使用模块库里面的源文件,需要在另一个py文件中执行 import 语句
import 模块名[, 模块名2[,... 模块名N]
因为当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。而搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support,需要把命令放在脚本的顶端:
我们所调用的模块其实就是一个程序,模块里面的宗多功能就是程序里的各种事先写好的函数,方便我对门的调用
用来导入模块内的某个子模块(也就是模块程序的某个函数)
from 模块名e import 子模块[, 子模块2[, ... 子模块N]]
用来导入模块内的所有子模块(也就是模块程序中的所有函数)
from 模块名 import *
import 模块名 as 别名
这样再次导入的时候就不用输入那种一大堆一大堆的模块名称了,记也记不住,用个别名多好
首先导入模块:
import random
这是一个随机数的模块,模块中有各种方法可以产生多种不同的随机数形式(要注意,凡是用晶体管计算机用时钟或是算法产生的随机数,都是伪随机数)
>>> import random
>>> dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_BuiltinMethodType', '_MethodType', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_inst', '_itertools', '_log', '_os', '_pi', '_random', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
>>>
有这么多模块......
专门为数学相关专业准备的内置模块,可以方便的调用操作各种数学理论方面的东西;
数学毕竟是万科之宗,所有工科的尽头就是数学,所有文科的尽头就是哲学;数学和哲学的尽头都是神学(逃
>>> import math
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
>>>
os 模块提供了非常丰富的方法用来处理文件和目录;这里就仅仅介绍几个常用的os模块,先粘贴一个文档,有需要自己去查
os模块菜鸟教程文档
>>> import os
>>> dir(os)
['DirEntry', 'F_OK', 'MutableMapping', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_NOINHERIT', 'O_RANDOM', 'O_RDONLY', 'O_RDWR', 'O_SEQUENTIAL', 'O_SHORT_LIVED', 'O_TEMPORARY', 'O_TEXT', 'O_TRUNC', 'O_WRONLY', 'P_DETACH', 'P_NOWAIT', 'P_NOWAITO', 'P_OVERLAY', 'P_WAIT', 'PathLike', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'W_OK', 'X_OK', '_Environ', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_execvpe', '_exists', '_exit', '_fspath', '_get_exports_list', '_putenv', '_unsetenv', '_wrap_close', 'abc', 'abort', 'access', 'altsep', 'chdir', 'chmod', 'close', 'closerange', 'cpu_count', 'curdir', 'defpath', 'device_encoding', 'devnull', 'dup', 'dup2', 'environ', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fdopen', 'fsdecode', 'fsencode', 'fspath', 'fstat', 'fsync', 'ftruncate', 'get_exec_path', 'get_handle_inheritable', 'get_inheritable', 'get_terminal_size', 'getcwd', 'getcwdb', 'getenv', 'getlogin', 'getpid', 'getppid', 'isatty', 'kill', 'linesep', 'link', 'listdir', 'lseek', 'lstat', 'makedirs', 'mkdir', 'name', 'open', 'pardir', 'path', 'pathsep', 'pipe', 'popen', 'putenv', 'read', 'readlink', 'remove', 'removedirs', 'rename', 'renames', 'replace', 'rmdir', 'scandir', 'sep', 'set_handle_inheritable', 'set_inheritable', 'spawnl', 'spawnle', 'spawnv', 'spawnve', 'st', 'startfile', 'stat', 'stat_result', 'statvfs_result', 'strerror', 'supports_bytes_environ', 'supports_dir_fd', 'supports_effective_ids', 'supports_fd', 'supports_follow_symlinks', 'symlink', 'sys', 'system', 'terminal_size', 'times', 'times_result', 'truncate', 'umask', 'uname_result', 'unlink', 'urandom', 'utime', 'waitpid', 'walk', 'write']
>>>
有丶多
这个是os的子模块,os.path 主要是用来操作文件的,判断文件是否存在、判断是文件还是文件夹等等,非常适合用于python的系统运维;
调用的时候需要 :
from os import path