2018-12-3python笔记(2.

发布时间:2019-08-31 09:44:53编辑:auto阅读(1431)

    python的强大之处在于它有很多的模块和方法
    比如 string os sys 模块

    模块是Python组织代码的基本方式。
    一个Python脚本可以单独运行,也可以导入到另一个脚本中运行,当脚本被导入运行时,我们将其称为模块(module)。
    所有的.py文件都可以作为一个模块导入
    模块名与脚本的文件名相同
    例如我们编写了一个名为hello.py的脚本,则可以在另一个脚本中用import hello语句来导入它。


    Python的模块可以按目录组织为包
    创建一个包的步骤:

    • 创建一个名字为包名的目录
    • 在该目录下创建一个init.py文件(必须有这样一个文件,python才会把它识别成是一个包)
    • 根据需要,在该目录下存放脚本文件或已编译的扩展及子包
    • import pack.m1, pack.m2, pack.m3 import 包名.模块名

    import sys
    sys.path 显示所有python会搜索的模块路径
    ['',
    '/usr/bin',
    '/usr/lib64/python27.zip',
    '/usr/lib64/python2.7',
    '/usr/lib64/python2.7/plat-linux2',
    '/usr/lib64/python2.7/lib-tk',
    '/usr/lib64/python2.7/lib-old',
    '/usr/lib64/python2.7/lib-dynload',
    '/usr/lib64/python2.7/site-packages',
    '/usr/lib/python2.7/site-packages',
    '/usr/lib/python2.7/site-packages/IPython/extensions']
    如果模块不存在 则抛出异常
    大部分模块都是在/usr/lib64/python2.7目录下

    也可以自定义python path 比如想把 /root/library 加入进来 则可以sys.path.append('/root/library') 或者修改.bashrc文件 export PYTHONPATH

    自己写的.py脚本也可以当成模块来导入
    统计一个文件有多少字符,多少单词,多少行的模块
    1.py文件
    #!/usr/bin/python

    -- coding:UTF-8 --

    def wordCount(s):
    chars = len(s)
    words = len(s.split())
    lines = s.count('\n') 这样统计比较好
    #lines = len(s.split('\n')) 这样统计会多统计一行
    print lines,words,chars
    s=open('/etc/passwd','r').read()
    wordCount(s)

    import 导入的脚本名不能以数字开头
    如果新的脚本导入模块,默认找的是当前目录下的模块 并产生一个.pyc被编译过的模块

    调用模块中的函数 使用 模块名.函数名(参数) 来调用

    问题:确保调用模块的时候避免执行模块内的本身的输出,而只执行调用者自己的输出
    则需要 在模块中做一个判断 if name == 'main'
    #!/usr/bin/python

    -- coding:UTF-8 --

    def wordCount(s):
    chars = len(s)
    words = len(s.split())
    lines = s.count('\n') 这样统计比较好
    #lines = len(s.split('\n')) 这样统计会多统计一行
    print lines,words,chars
    if name=='main'
    s=open('/etc/passwd','r').read()
    wordCount(s)

    模块是一个可以导入的Python脚本文件;
    包是一些按目录组织的模块和子包,目录下有init.py文件,此文件可以存放包的信息;
    导入模块和包的语法:

    • import , import as as可以在导入的时候给它起个新名字 import wc as 新名字
    • from … import … 比如 from 包名 import 模块名 或者 import 包名.模块名 或者 包名.模块名.函数名 都可以

关键字