初识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是这个脚本的名字,12…则为命令行下传递的参数

实例(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,并写入内容.

 

posted @ 2018-11-27 12:04  梦徒  阅读(269)  评论(0)    收藏  举报