模块,用一堆代码实现了某个功能的代码集合。

类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块。

如:os 是系统相关的模块;file是文件操作相关的模块

模块分为三种:

  • 自定义模块
  • 第三方模块
  • 内置模块

1、自定义模块

情景一:

情景二:

情景三:

2、导入模块

Python之所以应用越来越广泛,在一定程度上也依赖于其为程序员提供了大量的模块以供使用,如果想要使用模块,则需要导入。导入模块有一下几种方法:

1 import module
2 from module.xx.xx import xx
3 from module.xx.xx import xx as rename
4 from module.xx.xx import *

导入模块其实就是告诉Python解释器去解释那个py文件

  • 导入一个py文件,解释器解释该py文件
  • 导入一个包,解释器解释该包下的 __init__.py 文件 【py2.7】

那么问题来了,导入模块时是根据那个路径作为基准来进行的呢?即:sys.path

1 import sys
2 print sys.path

执行结果:

['/Users/wupeiqi/PycharmProjects/calculator/p1/pp1', '/usr/local/lib/python2.7/site-packages/setuptools-15.2-py2.7.egg', '/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg', '/usr/local/lib/python2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-x86_64.egg', '/usr/local/lib/python2.7/site-packages/xlutils-1.7.1-py2.7.egg', '/usr/local/lib/python2.7/site-packages/xlwt-1.0.0-py2.7.egg', '/usr/local/lib/python2.7/site-packages/xlrd-0.9.3-py2.7.egg', '/usr/local/lib/python2.7/site-packages/tornado-4.1-py2.7-macosx-10.10-x86_64.egg', '/usr/local/lib/python2.7/site-packages/backports.ssl_match_hostname-3.4.0.2-py2.7.egg', '/usr/local/lib/python2.7/site-packages/certifi-2015.4.28-py2.7.egg', '/usr/local/lib/python2.7/site-packages/pyOpenSSL-0.15.1-py2.7.egg', '/usr/local/lib/python2.7/site-packages/six-1.9.0-py2.7.egg', '/usr/local/lib/python2.7/site-packages/cryptography-0.9.1-py2.7-macosx-10.10-x86_64.egg', '/usr/local/lib/python2.7/site-packages/cffi-1.1.1-py2.7-macosx-10.10-x86_64.egg', '/usr/local/lib/python2.7/site-packages/ipaddress-1.0.7-py2.7.egg', '/usr/local/lib/python2.7/site-packages/enum34-1.0.4-py2.7.egg', '/usr/local/lib/python2.7/site-packages/pyasn1-0.1.7-py2.7.egg', '/usr/local/lib/python2.7/site-packages/idna-2.0-py2.7.egg', '/usr/local/lib/python2.7/site-packages/pycparser-2.13-py2.7.egg', '/usr/local/lib/python2.7/site-packages/Django-1.7.8-py2.7.egg', '/usr/local/lib/python2.7/site-packages/paramiko-1.10.1-py2.7.egg', '/usr/local/lib/python2.7/site-packages/gevent-1.0.2-py2.7-macosx-10.10-x86_64.egg', '/usr/local/lib/python2.7/site-packages/greenlet-0.4.7-py2.7-macosx-10.10-x86_64.egg', '/Users/wupeiqi/PycharmProjects/calculator', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages', '/Library/Python/2.7/site-packages']

如果sys.path路径列表没有你想要的路径,可以通过 sys.path.append('路径') 添加。

1 import sys
2 import os
3 project_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
4 sys.path.append(project_path)

总结:内置模块是Python自带的功能,在使用内置模块相应的功能时,需要【先导入】再【使用】

一、sys

用于提供对Python解释器相关的操作:

1 sys.argv           命令行参数List,第一个元素是程序本身路径
2 sys.exit(n)        退出程序,正常退出时exit(0)
3 sys.version        获取Python解释程序的版本信息
4 sys.maxint         最大的Int值
5 sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
6 sys.platform       返回操作系统平台名称
7 sys.stdin          输入相关
8 sys.stdout         输出相关
9 sys.stderror       错误相关

 1 import sys
 2 import time
 3
 4
 5 def view_bar(num, total):
 6     rate = float(num) / float(total)
 7     rate_num = int(rate * 100)
 8     r = '\r%d%%' % (rate_num, )
 9     sys.stdout.write(r)
10     sys.stdout.flush()
11
12
13 if __name__ == '__main__':
14     for i in range(0, 100):
15         time.sleep(0.1)
16         view_bar(i, 100)
17
18 进度百分比

sys模块示例1

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 #Author: huzhihua
4
5 import sys
6
7 print(sys.path)

注意:

python2 执行上面代码会报错。(原因:不能和导入的库名相同)

python3 执行不会报错。

执行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\python.exe D:/python/day2/sys.py
['D:\\python\\day2', 'D:\\python', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\python35.zip', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\DLLs', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\site-packages']

python标准库路径

C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\Lib

 python第三方库路径

C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\Lib\site-packages

sys模块示例2

说明:打印相对路径

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 #Author: nulige
4 import sys
5 #print(sys.path) #打印环境变量
6 print(sys.argv)

执行结果:

1 ['D:/python/day2/sys.py']

说明:演示取出2

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 #Author: nulige
4
5 import sys
6 #print(sys.path) #打印环境变量
7 print(sys.argv)
8 print(sys.argv[2])

二、os

用于提供系统级别的操作:

 1 os.getcwd()                 获取当前工作目录,即当前python脚本工作的目录路径
 2 os.chdir("dirname")         改变当前脚本工作目录;相当于shell下cd
 3 os.curdir                   返回当前目录: ('.')
 4 os.pardir                   获取当前目录的父目录字符串名:('..')
 5 os.makedirs('dir1/dir2')    可生成多层递归目录
 6 os.removedirs('dirname1')   若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
 7 os.mkdir('dirname')         生成单级目录;相当于shell中mkdir dirname
 8 os.rmdir('dirname')         删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
 9 os.listdir('dirname')       列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
10 os.remove()                 删除一个文件
11 os.rename("oldname","new")  重命名文件/目录
12 os.stat('path/filename')    获取文件/目录信息
13 os.sep                      操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
14 os.linesep                  当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
15 os.pathsep                  用于分割文件路径的字符串
16 os.name                     字符串指示当前使用平台。win->'nt'; Linux->'posix'
17 os.system("bash command")   运行shell命令,直接显示
18 os.environ                  获取系统环境变量
19 os.path.abspath(path)       返回path规范化的绝对路径
20 os.path.split(path)         将path分割成目录和文件名二元组返回
21 os.path.dirname(path)       返回path的目录。其实就是os.path.split(path)的第一个元素
22 os.path.basename(path)      返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
23 os.path.exists(path)        如果path存在,返回True;如果path不存在,返回False
24 os.path.isabs(path)         如果path是绝对路径,返回True
25 os.path.isfile(path)        如果path是一个存在的文件,返回True。否则返回False
26 os.path.isdir(path)         如果path是一个存在的目录,则返回True。否则返回False
27 os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
28 os.path.getatime(path)      返回path所指向的文件或者目录的最后存取时间
29 os.path.getmtime(path)      返回path所指向的文件或者目录的最后修改时间

示例1

备注:os.mkdir("new_dir"),表示:创建一个目录

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #Author: nulige
 4
 5 import os
 6
 7 #cmd_res = os.system("dir")  #执行命令,不保存结果
 8 cmd_res = os.popen("dir").read()   #保存在内存的一个地方,通过read方法读取出来
 9 print("-->",cmd_res)
10 os.mkdir("new_dir")

执行结果:

 1 -->  Volume in drive D is SSD
 2  Volume Serial Number is 687D-EF64
 3
 4  Directory of D:\python\day2
 5
 6 2016/11/02  18:58    <DIR>          .
 7 2016/11/02  18:58    <DIR>          ..
 8 2016/10/30  20:15               596 dictionary.py
 9 2016/10/26  16:23               227 login.py
10 2016/10/26  18:31               829 names.py
11 2016/10/29  10:22               496 names08.py
12 2016/10/26  12:11               406 password.py
13 2016/10/30  15:44             1,457 shopping.py
14 2016/11/02  18:46               178 sys.py
15 2016/11/02  18:58               392 sys_mod.py
16 2016/10/29  10:50               152 test09.py
17 2016/10/26  14:08    <DIR>          __pycache__
18                9 File(s)          4,733 bytes
19                3 Dir(s)  764,362,289,152 bytes free

示例2

功能说明:判断输入用户名和密码是否正确

password.py

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #Author: nulige
 4 #import getpass
 5
 6 _username = 'nulige'
 7 _password = '123456'
 8 username = input("username:")
 9 #password = getpass.getpass("password:")
10 password = input("password:")
11 if _username == username and _password == password:
12     print("Welcome user {name} login...".format(name=username))
13 else:
14     print("Invalid username or password!")

执行结果:

1 username:nulige
2 password:123456
3 Welcome user huzhihua login...

1 username:nulige
2 password:33333
3 Invalid username or password!

说明:介绍怎么调用模块

写一个名称为:login.py 的模块,然后用sys_mod.py去调用这个login.py的模块

login.py

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 #Author: nulige
 4
 5 _username = 'nulige'
 6 _password = '123456'
 7 username = input("username:")
 8 #password = getpass.getpass("password:")
 9 password = input("password:")
10 if _username == username and _password == password:
11     print("Welcome user {name} login...".format(name=username))
12 else:
13     print("Invalid username or password!")

sys_mod.py

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 #Author: nulige
4
5 import login

执行结果:

输入错误的用户名和密码

1 username:nulige
2 password:333322
3 Invalid username or password!

输入正确的用户名和密码

1 username:nulige
2 password:123456
3 Welcome user nulige login...

转载于:https://www.cnblogs.com/nulige/p/6023985.html

Python基础-模块相关推荐

  1. Python基础模块:图像处理模块@PIL(批量分类处理图片及添加水印)

    大家好,才哥又来了! 又要上班了,春节总是过的太匆匆. 最近接到一个需求,把一批照片按照分辨率进行分类存储,再将其中指定宽高比的照片设置为特定的分辨率且添加水印. 以下是简单的效果: 目录: 文章目录 ...

  2. Python基础 模块

    点这里查看Python的所有内置函数 介绍: Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地 ...

  3. python基础---模块与包

    1.模块导入方法 常见的场景: 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀,导入模块可以实现功能的重复利用 import加载的模块分为四个通用类别: 1 使 ...

  4. Python 第2周 - Python基础-模块\数据运算

    内容 模块初识 数据运算 bytes数据类型 python数据类型 列表的使用 元组与购物车操作 购物车程序练习 字符串常用操作 字典的使用 三级菜单实例 本周作业-购物车优化 一.模块初识 Pyth ...

  5. Python基础——模块的安装

    文章目录 1.前言 2.什么是外部模块 3.安装 Numpy 1.前言 安装外部的模块有很多种方式, 不同的系统安装形式也不同. 比如在 Windows 上安装 Python 的一些包, 可能还会要了 ...

  6. Python基础 - 模块 (Module) 和 包(Packages)

    1. 模块 (Module) 1. 定义:一般情况下,一个.py文件就称作一个模块 2. 导入方式:[其中,括号表示可写可不写] ① import 模块名1 (as 别名1) , 模块名2 (as 别 ...

  7. Python基础——模块和包详解以及pip操作模块和包的指令

    随着项目越来越大,所有代码都放在一个文件中,已经不能满足我们的需求了.这时候就要将代码进行整理了,模块和包的出现就是为了解决这个问题的.模块可以将一些相关联的代码组合在一个py文件中,包可以将一些相关 ...

  8. Python基础——第四章:Python循环语句

    前言 本文是根据黑马程序员Python教程所作之笔记,目的是为了方便我本人以及广大同学们查漏补缺. 不想做笔记直接来我的频道.当然啦,自己的笔记才是最好的哦! PS:感谢黑马程序员! 教程链接:黑马程 ...

  9. Python基础——第二章:Python基础语法

    前言 本文是根据黑马程序员Python教程所作之笔记,目的是为了方便我本人以及广大同学们查漏补缺. 不想做笔记直接来我的频道.当然啦,自己的笔记才是最好的哦! PS:感谢黑马程序员! 教程链接:黑马程 ...

最新文章

  1. JAVA Future
  2. ICO流程,casestudy
  3. android悬浮按钮弹出与隐藏,Android悬浮窗按钮实现点击并显示/隐藏多功能列表
  4. Apache 2.2 + Php 5.1 安装问题解决[原创]
  5. JavaScript预解析、作用域题目记录
  6. 详解MOS管、IGBT管,不看就亏大了!
  7. apache camel_Apache Camel中的断路器模式
  8. 内网安装nginx+keepalived环境配置及简单使用
  9. MySQL 在高并发下的 订单撮合 系统使用 共享锁 与 排他锁 保证数据一致性
  10. 图片添加对话气泡app_微信公众号、对话框、看一看功能又更新!儿童版微信也要来了?!...
  11. 华为鸿蒙万物互联应用,为什么我需要万物互联? 鸿蒙能带来什么?
  12. Linux的setup命令启动服务名称和功能
  13. ModuleNotFoundError: No module named ‘pip‘
  14. 刚刚接触视频剪辑,怎么快速剪视频?
  15. 计算机普通话培训开班简报,普通话培训第四期简报.doc
  16. 现代密码学之对称加密-DES及AES算法
  17. Windows server 2008 R2安装详细教程
  18. unity5 rendersetting选项
  19. STM32F407-用TB6600驱动器驱动57步进电机(代码+连线)
  20. 悦读(小程序)~~~~~~青龙脚本

热门文章

  1. VC2008下编译使用OpenSSL
  2. 变量,作用域,和内存问题
  3. python显示行数_jupyter notebook实现显示行号
  4. html5初探ppt,HTML5---HTML5初探151019解析.ppt
  5. arach Linux设置静态,大神面对win7系统archlinux静态网络配置错误造成无法上网的还原办法...
  6. java awt 监视器_java – 停止所有Awt / Swing线程和监视器和东...
  7. matlab在线性系统理论中的应用,线性系统理论相关的matlab应用.ppt
  8. java算法面试题_【干货】经典算法面试题代码实现-Java版
  9. ping ip 端口_学生会私房菜【20200305期】——Ping命令及其常用参数详解
  10. 14.Python抠图脚本