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)
sys.argv用法实例

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)
随机验证码实例

 

posted @ 2019-01-08 23:23  梦徒  阅读(307)  评论(0)    收藏  举报