初识Python模块
Python 模块
为了实现对程序特定功能的调用和存储,人们将代码封装起来,可以供其他程序调用,可以称之为模块.
如:os 是系统相关的模块;file是文件操作相关的模块;sys是访问python解释器的变量和函数的方法的模块等...
模块分为三种:
- 自定义模块
- 内置模块
- 第三方模块
1.模块导入
Python应用越来越广泛,在一定程度上也依赖于其为程序员提供了大量的模块以供使用,如果想要使用模块,则需要导入。
python有三种导入模块的方法:
1 import modname //import 语句 2 3 from modname import funcname as rename //from ...import ..as 语句 4 5 from modname import fa, fb, fc 或者 from modname import * //from ...import *(不推荐使用这种方式)
2.下载安装第三方模块
第一种方法: yum install 软件名 -y 第二种方式: 下载源码 解压源码 进入目录 编译源码 python setup.py build 安装源码 python setup.py install 注:在使用源码安装时,需要使用到gcc编译和python开发环境,所以,需要先执行:yum install gcc python-devel 安装成功后,模块会自动安装到 sys.path 中的某个目录中,如:/usr/lib/python3.6/site-packages/
python 内置模块
一、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模块
用于提供对解释器相关的操作
1.获取模块搜索路径的字符串集合
>>> import sys >>> print(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 文件
2.相关方法解析
sys.argv: //实现从程序外部向程序传递参数 sys.exit(): //程序中间的退出,exit(0):无错误退出 sys.path: //获取指定模块搜索路径的字符串集合. sys.platform: //获取当前系统平台 出现如: "win32" "linux2" 等. sys.getdefaultencoding(): //获取系统当前编码,一般默认为ascii. sys.getfilesystemencoding(): //获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'. sys.setdefaultencoding(): //设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 sys.setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 ) sys.stdin,sys.stdout,sys.stderr stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们.
3.sys.argv用法
sys.argv 包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称.
Import sys print sys.argv[number] 一般情况下,number为0是这个脚本的名字,1,2…则为命令行下传递的参数
实例(mod.py):
#!/usr/bin/env python #coding:utf-8 import sys def readfile(filename): #定义readfile函数,从文件中读出文件内容 f = open(filename) with open(filename,'rb') as f: while True: line = f.readline() if len(line) == 0: break print('file content:',line) #分别输出每行内容 print (sys.argv) if len(sys.argv) < 2: print('No action specified.') sys.exit() if sys.argv[1].startswith('--'): option = sys.argv[1][2:] # fetch sys.argv[1] but without the first two characters if option == 'version': #当命令行参数为-- version,显示版本号 print('Version 1.2') elif option == 'help': #当命令行参数为--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('Unknown option.') sys.exit() else: for filename in sys.argv[1:]: #当参数为文件名时,传入readfile,读出其内容 readfile(filename)
1.当执行python mod.py时,打印出来的是文件名称即sys.agrv[0]的值,

2.执行--help,打印如下

3.执行--version打印如下

4.在与mod.py同一目录下,新建3个记事本文件test.txt,并写入内容.


浙公网安备 33010602011771号