Python模块简析

1,什么是模块

2,模块的分类

3,如何导入模块或自定义模块

4,常见的系统模块简析  random,math,os,os.path

 

 

壹   什么是Python的模块

我们之前在Python解释器上写的Python程序,建立了那么多函数,但是只要退出了解释器,我们定义的变量和函数都消失了;牛顿有句话说的好:要站在巨人的肩膀上;也就是一切都最好不要从零开始;于是乎,Python就提供了一个办法:把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件就被称为模块。

所有的python模块都放在了这个地方,调用和导入第三方模块都是在这里进行的,而且所有的模块文件都是py格式C:\Users\95385\AppData\Local\Programs\Python\Python37\Lib

Python模块简析_第1张图片Python模块简析_第2张图片

 

 

 

贰   模块的分类

Python中的模块大致能分为以下几类:

  • 系统模块
    • 内置模块:已经安装在系统中的C:\Users\95385\AppData\Local\Programs\Python\Python37\Lib这个文件夹里面,用的时候需要导入即可。(builtins模块是默认导入的)
  • 第三方模块
    • 非官方的模块,在Python界占有重要的一席之地,也是Python社区对于Python语言的不断壮大的显著效果;需要借助工具pip来进行安装导入     
    • requests # pip install requests
  • 自定义模块
    • xxx.py 导入到其他的py文件中使用   
    • project->package->模块

 

 

 

叁   如何导入模块或者是自定义模块

import语句

若想使用模块库里面的源文件,需要在另一个py文件中执行 import 语句

import 模块名[, 模块名2[,... 模块名N]

因为当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。而搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support,需要把命令放在脚本的顶端:

我们所调用的模块其实就是一个程序,模块里面的宗多功能就是程序里的各种事先写好的函数,方便我对门的调用

 

from ... import 语句

用来导入模块内的某个子模块(也就是模块程序的某个函数)

from 模块名e import 子模块[, 子模块2[, ... 子模块N]]

 

from ... import * 语句

用来导入模块内的所有子模块(也就是模块程序中的所有函数)

from 模块名 import *

 

使用别名导入

import 模块名 as 别名

这样再次导入的时候就不用输入那种一大堆一大堆的模块名称了,记也记不住,用个别名多好

 

 

肆   常见的系统模块简析

 

random模块

首先导入模块:

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']
>>>                    

有这么多模块......

  • random()   返回一个(0,1]之间的随机数
  • randint(m, n)    返回[m,n]之间的随机整数
  • choice()  从一个序列中随机选择元素
  • randrange(x)   随机随机产生一个[0,x)之间的整数

 

math模块

专门为数学相关专业准备的内置模块,可以方便的调用操作各种数学理论方面的东西;

数学毕竟是万科之宗,所有工科的尽头就是数学,所有文科的尽头就是哲学;数学和哲学的尽头都是神学(逃

>>> 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']
>>>
  • ceil   只要数值存在小数位,则向上取整
  • floor    只要数值存在小数位,则向下取整
  • e    自然常数  不要加括号了
  • pi     圆周率
  • fabs     求绝对值
  • fmod    求模(求余数)
  • pow    求幂次方
  • sqrt   开平方根

 

os模块

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']
>>>

有丶多

  •  chdir   修改当前工作空间路径
  •  chmod    修改权限
    • os.chmod(path, mode)
    • Python模块简析_第3张图片
  •  cpu_count    获取当前系统的cpu核数
  •  getcwd    该属性表示当前路径,注意,获取的是绝对路径
  •  listdir    遍历得到当前工作空间下的所有文件及文件夹,返回一个列表
  •  makedirs     创建文件夹,可以级联创建多层
  •   mkdir  创建文件夹,注意:只能创建一层
    • 同上
  •  remove    删除文件
    •   不演示了
  •   removedirs   删除文件夹,注意,可以多级删除
    • Python模块简析_第4张图片
  •   rename   重命令  不演示; 
  •  rmdir   删除文件夹,注意,应该只能一级一级删除   不演示了
  •  scandir    遍历得到当前工作空间下的所有文件及文件夹,返回一个迭代器对象
  • sep    返回系统对应的文件分割符
    • win10   
    • kaliLinux(Debian)  Python模块简析_第5张图片
  • system    该方法可以执行该系统对应的所有终端命令
    • Python模块简析_第6张图片

 

os.path模块

这个是os的子模块,os.path 主要是用来操作文件的,判断文件是否存在、判断是文件还是文件夹等等,非常适合用于python的系统运维;

调用的时候需要 :

from os import path
  • abspath     显示当前目录内文件(文件夹)的相对路径的绝对路径
  • basename       一般而言,显示路径对应的文件名称 
  • exists        判断文件或者文件夹是否存在
  • getsize     获取文件的大小  单位是 B 字节
  • isdir       判断是否是目录
  • isfile      判断是否是文件
  • join      拼接路径
    • Python模块简析_第7张图片
  • split       分割文件路径

 

 

 

你可能感兴趣的:(编程之路)