常见的python模块_Python学习笔记(8)---Python模块和一些常用模块的详细信息,八,及,部分,常见,详解...

一、相关

在Python中,一个文件(.py)就可以当做一个模块,类似Java中的类、包,每一个模块都可以看做是是一个独立的文件/文件夹。我们可以把某一种功能封装在一个模块里,在其他的模块里需要这种功能的时候,直接调用这个模块的函数,这样可以使我们的代码看起来更简洁,更有条理性。模块能定义函数,类和变量,模块里也能包含可执行的代码。除此之外,现在已提供了许多优秀的模块共程序员们使用,我们可以便捷地引入一个模块来使用其中的功能,让编程变得更加简单。

二、模块的来源

1.Python解释器自带的模块

2.自定义模块(注意:自定义模块不可以解释器模块同名)

3.第三方模块

三、模块的四种表现形式

1.Python文件

2.一系列Python文件的结合体(需要有一个__init__.py文件)

3.已被编译为共享库或DLL的C或C++扩展

4.自编辑解释器内部模块(作者不是很了解)

四、模块的引入方法

简单来说,Python中模块的引入有两种方法:

import *** 和from *** import ***

细分一下则有如下解释:

1.import ***

直接引入对应的模块

2.import *** as mm

引入模块,并取别名

3.from *** import 功能名

引入某模块的某功能

4.from *** import 功能名 as 别名

直接拿别名来用

5,from 模块名 import  *

引入该模块的所有功能,但是无法像第四条一样使用别名

五、部分常见模块

1.sys模块

sys模块主要属性

sys.argv 命令行参数List,第一个元素是程序本身路径

sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。

sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 )。

sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'.

sys.modules.keys() 返回所有已经导入的模块列表

sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息

sys.exit(n) 退出程序,正常退出时exit(0)

sys.hexversion 获取Python解释程序的版本值,16进制格式如:0x020403F0

sys.version 获取Python解释程序的版本信息

sys.maxint 最大的Int值

sys.maxunicode 最大的Unicode值

sys.modules 返回系统导入的模块字段,key是模块名,value是模块

sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

sys.platform 返回操作系统平台名称

sys.stdout 标准输出

sys.stdin 标准输入

sys.stderr 错误输出

sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息

sys.exec_prefix 返回平台独立的python文件安装的位置

sys.byteorder 本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little'

sys.copyright 记录python版权相关的东西

sys.api_version 解释器的C的API版本

实践:获取系统中Python的版本

import sys # 引入sys解释器模块

print(sys.version)

C:\Python\Python37-32\python.exe E:/Workspaces/PycharmProjects/untitled/openTest.py

3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)]

Process finished with exit code 0

实践:利用sys.path添加模块扫描路径

sys.path属性会返回一个列表,李淼包含了我们导入模块时要扫描的路径

import sys # 引入sys解释器模块

print(sys.path)

C:\Python\Python37-32\python.exe E:/Workspaces/PycharmProjects/untitled/openTest.py

['E:\\Workspaces\\PycharmProjects\\untitled',

'E:\\Workspaces\\PycharmProjects\\untitled',

'C:\\Python\\Python37-32\\python37.zip',

'C:\\Python\\Python37-32\\DLLs',

'C:\\Python\\Python37-32\\lib',

'C:\\Python\\Python37-32',

'C:\\Python\\Python37-32\\lib\\site-packages']

Process finished with exit code 0

有些时候我们可能会自定义一个文件夹去储存我们的模块,而这个文件夹又可能不在path属性里,此时我们可以操作path属性,将我们自己的模块文件夹添加进去

import sys # 引入sys解释器模块

sys.path.append("E:\\repository");

sys.path.insert(0, "E:\\repository\\ant") # 可以确保先搜索这个路径

print(sys.path)

C:\Python\Python37-32\python.exe E:/Workspaces/PycharmProjects/untitled/openTest.py

['E:\\repository\\ant',

'E:\\Workspaces\\PycharmProjects\\untitled',

'E:\\Workspaces\\PycharmProjects\\untitled',

'C:\\Python\\Python37-32\\python37.zip',

'C:\\Python\\Python37-32\\DLLs',

'C:\\Python\\Python37-32\\lib',

'C:\\Python\\Python37-32',

'C:\\Python\\Python37-32\\lib\\site-packages',

'E:\\repository']

Process finished with exit code 0

不过我们一般是不建议使用这种方法添加扫描路径的,因为在退出交互式环境或者IDE后会自动恢复到原来的设置。

2.OS模块

os模块主要方法

需要注意的是,Windows系统与Linux系统不同,所有有些方法无法在Windows系统上进行调试

os.sep:取代操作系统特定的路径分隔符

os.name:指示你正在使用的工作平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。

os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。

os.getenv()和os.putenv:分别用来读取和设置环境变量

os.listdir():返回指定目录下的所有文件和目录名

os.remove(file):删除一个文件

os.stat(file):获得文件属性

os.chmod(file):修改文件权限和时间戳

os.mkdir(name):创建目录

os.rmdir(name):删除目录

os.removedirs(r“c:\python”):删除多个目录

os.system():运行shell命令

os.exit():终止当前进程

os.linesep:给出当前平台的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'

os.path.split():返回一个路径的目录名和文件名

os.path.isfile()和os.path.isdir()分别检验给出的路径是一个目录还是文件

os.path.existe():检验给出的路径是否真的存在

os.listdir(dirname):列出dirname下的目录和文件

os.getcwd():获得当前工作目录

os.curdir:返回当前目录('.')

os.chdir(dirname):改变工作目录到dirname

os.path.isdir(name):判断name是不是目录,不是目录就返回false

os.path.isfile(name):判断name这个文件是否存在,不存在返回false

os.path.exists(name):判断是否存在文件或目录name

os.path.getsize(name):或得文件大小,如果name是目录返回0L

os.path.abspath(name):获得绝对路径

os.path.isabs():判断是否为绝对路径

os.path.normpath(path):规范path字符串形式

os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)

os.path.splitext():分离文件名和扩展名

os.path.join(path,name):连接目录与文件名或目录

os.path.basename(path):返回文件名

os.path.dirname(path):返回文件路径

实践:创建文件夹

import os #os模块就是对操作系统进行操作,使用该模块必须先导入模块:

os.mkdir("test")

成功创建文件夹

(以下模块篇幅过长,只做简单描述,若需要详细了解,请自行查找资料,或点击提供的链接)

3.datetime模块

datatime模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime,timedelta,tzinfo。

4.hashlib加密模块

hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法

5.logging模块

logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:

可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;

print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出

6.subprocess模块

subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码。这个模块的目的在于替换几个旧的模块和方法,如:

os.system

os.spawn*

六、自定义模块实现

baldwin模块

# baldwin.py

def printMyName():

print("My name is Baldwin!")

1.同级引入

如果模块和文件在同一个文件夹下,直接import引入即可,在此不再累述

2.

不同层级引入

文件结构

主要程序在openTest.py文件里

创建__init__.py

首先在mymoduledir文件夹下创建__init__.py文件,将mymoduledir文件夹变成python文件夹模式

引入

from mymoduledir import baldwin as bb

bb.printMyName()

C:\Python\Python37-32\python.exe E:/Workspaces/PycharmProjects/untitled/openTest.py

My name is Baldwin!

Process finished with exit code 0

七、总结

Python之所以现在那么流行,与其种类众多的模块分不开,在项目中巧用模块可以使我们的项目更健壮、简洁、流畅,但是也要掌握自定义模块的使用,毕竟只有自己才最明白自己的需求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值