Python模块
python 模块
为了实现对程序特定功能的调用和存储,人们将代码封装起来,可以供其他程序调用,可以称之为模块.
如:os 是系统相关的模块;file是文件操作相关的模块;sys是访问python解释器的变量和函数的方法的模块等...
模块分为三种:
- 自定义模块
- 内置模块
- 第三方模块
模块导入
Python应用越来越广泛,在一定程度上也依赖于其为程序员提供了大量的模块以供使用,如果想要使用模块,则需要导入。
python有三种导入模块的方法:
import modname //import 语句 from modname import funcname as rename //from ...import ..as 语句 from modname import fa, fb, fc 或者 from modname import * //from ...import *(不推荐使用这种方式)
获取模块搜索路径的列表;
>>> import sys >>> sys.path ['', 'D:\\python36\\python36.zip', 'D:\\python36\\DLLs', 'D:\\python36\\lib', 'D:\\python36', 'D:\\python36\\lib\\site-packages'] >>>
如果sys.path路径列表没有你想要的路径,可以通过 sys.path.append('路径') 添加。
导入模块其实就是告诉Python解释器去解释那个py文件:
- 导入一个py文件,解释器解释该py文件
- 导入一个包,解释器解释该包下的 __init__.py 文件
第三方模块安装方法:
第一种方法:多文件模块,带setup.py 下载模块包(压缩文件zip或tar.gz),进行解压,CMD->cd进入模块文件夹,执行: python setup.py install 第二种方法:easy_install 方式 先下载ez_setup.py,运行python ez_setup 进行easy_install工具的安装,之后就可以使用easy_install进行安装package(文件名称、资源的URL、.egg文件(python egg文件)来下载安装文件) easy_install packageName easy_install package.egg 第三种方法:pip 网络搜索自动安装 先进行pip工具的安裝:easy_install pip(pip 可以通过easy_install 安裝,而且也会装到 Scripts 文件夹下D:\Python2.7\Lib\site-packages) 安裝:pip install PackageName
内置模块
一、OS模块:
Python的标准库中的os模块主要涉及普遍的操作系统功能。可以在Linux和Windows下运行,与平台无关.
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove() 删除一个文件 os.rename("oldname","newname") 重命名文件/目录 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所指向的文件或者目录的最后修改时间 os.putenv(key, value) 用来设置环境变量 os.path.splitext(): 分离文件名与扩展名
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))路径解析:
--------------------------------------------------
二、sys模块
用于提供对解释器相关的操作。
>>>Import sys >>>Print sys.argv[number] 一般情况下,number为0是这个脚本的名字,1,2…则为命令行下传递的参数 sys.argv: #实现从程序外部向程序传递参数,第一个元素是程序本身路径 sys.exit(n) #退出程序,正常退出时exit(0) sys.version #获取Python解释程序的版本信息 sys.path #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform #返回操作系统平台名称 sys.getdefaultencoding() #获取系统当前编码,一般默认为ascii.
#!/usr/bin/env python #coding:utf-8 #action : python3 sys-argv.py filename import sys # li = sys.argv[0] # print os.path.split(li)[1] 取出脚本的名称 def readfile(filename): print("Print file information....") with open(filename) as f: while True: line = f.readline() if len(line) == 0: break else: print(line) print("sys.argv[0]-------",sys.argv[0]) print("sys.argc[1]-------",sys.argv[1]) print("sys.argv[1:]",sys.argv[1:]) if len(sys.argv) < 2: print("No action specitfied.") sys.exit() if sys.argv[1].startswith('--'): option = sys.argv[1][2:] if option == 'verson': print("Verson1.2") elif option == 'help': print(""" This program prints files to the standard output. Any number of files can be specified. Options include: --version : Prints the version number --help : Display this help''' """) else: print("Unkown option") sys.exit() else: for filename in sys.argv[1:]: readfile(filename)
random模块
Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。
>>> import random #random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 >>> random.random() 0.19340995367167257 #random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数,其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b >>> random.randint(1,7) 2 #random.randrange的函数原型为:random.randrange([start], stop[, step]), # 从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2), # 结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数 # random.randrange(10, 100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。 >>> random.randrange(1,10) 2 #random.choice从序列中获取一个随机元素。 >>> random.choice('abcdefg') 'g' #随机选取字符串: >>> random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] ) 'pear' #多个字符中选取特定数量的字符 >>> random.sample('abcdefghij',3) ['c', 'e', 'h'] 洗牌:把原有的顺序打乱,按照随机顺序排列 >>> items = [1, 2, 3, 4, 5, 6] >>> random.shuffle(items) >>> items [1, 6, 5, 3, 2, 4]
随机验证码实例:
import random checkcode = "" for i in range(5): #print(i) current = random.randrange(0,5) if current != i: temp = chr(random.randint(65,90)) else: temp = random.randint(0,9) checkcode += str(temp) print(checkcode)

浙公网安备 33010602011771号