首页 > 代码库 > python笔记6:常用模块
python笔记6:常用模块
模块,模块就是封装了特殊功能的代码。
模块分为三种:
自定义模块
第三方模块
内置模块
1.自定义模块
自定义模块就是自己定义的模块,如何import自定义模块,如下:
(1)主程序与模块程序在同一目录下: 如下面程序结构: `-- src |-- mod1.py `-- test1.py 若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1 import *;
(2)主程序所在目录是模块所在目录的父(或祖辈)目录 如下面程序结构: `-- src |-- mod1.py |-- mod2 | `-- mod2.py `-- test1.py 若在程序test1.py中导入模块mod2
可以使用 from mod2.mod2 import * 或import mod2.mod2.
(3)主程序导入上层目录中模块或其他目录(平级)下的模块 如下面程序结构: `-- src |-- mod1.py |-- mod2 | `-- mod2.py |-- sub | `-- test2.py `-- test1.py 若在程序test2.py中导入模块mod1和mod2。调用方式如下: import os import sys path = os.path.dirname(os.path.dirname(__file__)) #获取test2.py的根目录sub,然后再获取sub的根目录src sys.path.insert(0, path) #将src目录添加到环境变量 import mod1 import mod2.mod2
当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。
搜索路径是一个解释器会先进行搜索的所有目录的列表。如果需要导入模块support,需要把命令放在程序的顶端
- 一个模块只会被导入一次
- python解释器依次从目录中一级级的去寻找所引入的模块
- 寻找模块的过程有点像环境变量,事实上也可以通过定义环境变量的方式来确定搜索的路径
- 搜索路径是python编译或者安装的时候确定的,安装新的库应该也会修改,搜索路径被存储在sys模块中的path变量
2. 第三方模块
如何安装第三方模块,有2种安装方式,如下:
第一种安装方式:
Python3种自带了pip3,Python2.7种自带了pip,前提是需要将pip3(scripts目录)添加环境变量。
pip3 install xxx 安装某个模块
pip list 查看已经安装的模块
pip uninstall xxx模块已卸载
第二种安装方式,手动安装:
先下载安装包,直接百度搜比如说python requests模块
解压安装包
在解压的目录下执行 python setup.py install
3. 内置模块
random模块
import random print(random.randint(1, 20)) #在1-19之间随机生成一个整数,随机 print(random.choice(‘abs123‘)) #随机取一个元素,随机可迭代对象:字符串、字典、list、元组 print(random.sample(‘abcdfgrtw12‘, 3)) #随机取几个元素,3是长度,[‘2‘, ‘a‘, ‘b‘],返回结果是list类型 print(random.uniform(1, 9)) #随机浮点数,随机取1-9之间的浮点数,可指定范围,5.8791750348305625 print(random.random()) #随机0-1的浮点数,0.9465901444615425 random.shuffle([1, 2, 3, 4, 5, 6]) #随机打乱list的值,只能是list
os模块
import os print(os.getcwd()) #获取当前py文件所在的工作目录:E:\python_workspace\base-code\day6
os.chdir(‘../‘) #更改当前的工作目录
print(os.getcwd()) #更改后的目录:E:\python_workspace\base-code
print(os.mkdir(‘test01‘)) #在当前工作目录创建文件夹
print(os.mkdir(‘E:/python_workspace/base-code/test01‘)) #在其他目录下创建文件夹时,需要写绝对路径
print(os.makedirs(r‘test02\test2‘)) #创建多层目录,若创建的父目录(test02)不存在,则创建成功 print(os.rmdir(‘test01‘)) #删除当前目录下的空文件夹,若文件夹有内容,则删除失败 #print(os.removedirs(r‘test02\test2‘)) #删除多层文件夹,若文件夹下有文件,则删除失败 print(os.remove(‘ac.py‘)) #删除文件,若传入文件夹则抛出OSError异常
print(os.rename(‘a.py‘, ‘ab.py‘)) #重命令,将a.py更改为ab.py print(os.listdir(‘.‘)) #打印当前目录下所有的文件,返回结果为list print(os.sep) #获取当前系统的路径分隔符 \ print(__file__) #打印当前文件的绝对路径 print(os.path.abspath(‘a.py‘)) #获取a.py的绝对路径 print(os.path.abspath(__file__)) #获取当前文件的绝对路径 print(os.path.dirname(__file__)) #获取当前文件的父级目录(也就是上一级目录信息) print(os.name) #获取当前系统的名称,win返回的是nt
os.system(‘ipconfig‘) #os.sysytem用来执行系统命令,运行ipconfig命令,直接显示 print(os.path.exists(‘test01‘)) #判断文件或者目录是否存在,如果存在返回True print(os.path.isfile(‘ab.py‘)) #判断是否是一个文件,如果是文件则返回True print(os.path.isdir(‘test01‘)) #判断是否是一个目录,如果是一个目录则返回True print(os.path.isabs(‘‘)) #如果path是绝对路径,返回True print(os.path.join(‘e:‘, os.sep, ‘aa‘, ‘abc.txt‘)) #拼接路径:e:\aa\abc.txt print(os.path.join(‘ac‘, ‘test‘, ‘python‘)) #ac\test\python print(os.path.split(‘python_workspace/base-code/day6‘)) #分隔目录和文件名,返回结果为元组:(‘python_workspace/base-code‘, ‘day6‘)
sys模块
import sys res = sys.argv #命令行参数,在Terminal输入命令:python rename.py b.txt 123 666 ,res接收到的结果为list,第一个元素是程序本身 sys.exit(0) #退出程序,正常退出时n=0 sys.maxint #最大的int值 sys.path #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform #返回操作系统平台名称 sys.stdout.write(‘please:‘)#向屏幕输出一句话 val = sys.stdin.readline()[:-1]#获取输入的值
time模块
import time print(time.time()) #获取当前时间的时间戳 print(time.strftime(‘%Y%m%d %H%M%S‘)) #将时间元组转换为 格式化输出的字符串,可以调试自己需要的时间格式 print(time.localtime()) #将时间戳转换为时间元组,若不传时间戳,则默认获取当前时间的时间戳 print(time.localtime(1498056319)) #将时间戳转换为时间元组:time.struct_time(tm_year=2017, tm_mon=6, tm_mday=21, tm_hour=22, tm_min=45, tm_sec=19, tm_wday=2, tm_yday=172, tm_isdst=0) print(time.mktime(time.localtime())) #将时间元组转换为时间戳 time.sleep(2) #休眠时间 print(time.strptime(‘20170618 144037‘, ‘%Y%m%d %H%M%S‘)) #将格式化后的时间转换为时间元组 print(time.ctime(1498056319)) #将时间戳转换Wie格式化时间:Wed Jun 21 22:45:19 2017 print(time.asctime()) #将时间元组转换为格式化时间,Wed Jun 21 22:52:37 2017,标准时间
datetime模块
import datetime print(datetime.datetime.now()) #将当前时间格式化输出,类似time.strftime(‘%Y%m%d %H%M%S‘) print(datetime.datetime.now() + datetime.timedelta(2)) #2天后的时间2017-06-23 22:56:24.150894 print(datetime.datetime.now() + datetime.timedelta(-1)) #1天前的时间2017-06-20 22:56:45.05809
python笔记6:常用模块
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。