Python基础(篇六)
温馨提示:
本文最后更新于 2022年10月27日,已超过 964 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
十一. 模块
1. 什么叫模块
在python中一个扩展名为.py的文件就是一个模块
函数与模块的关系
- 一个模块中可以包含多个函数
使用模块的好处
- 方便其他程序和脚本的导入并使用
- 避免函数名和变量名冲突
- 提高代码的可维护性
- 提高代码的可重用性
2. 自定义模块
创建模块 : 新建一个.py文件,名称不要与python自带的标准模块名称相同
导入模块
import 模块名称 [as 别名] from 模块名称 import 函数/变量/类
模块的引入方式
import math #引入整个math模块
from math import pi #引入math模块中的pi函数
from demo1 import add #引入自定义模块demo1中的add函数
import demo1 as myMath #引入整个自定义模块demo1并赋别名
print(add(1,2))
print(myMath.dive(2,3))
3. 以主程序的形式执行
在每个模块的定义中都包括一个记录模块名称的变量_name程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其它程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的\name__变量的值为__main__
def add(a,b):
return a+b
if __name__ == '__main__': #只有在运行本模块的时候,以下代码才会被执行
print(add(20, 30))
4. python中的包
包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下
作用
- 代码规范
- 避免模块名称冲突
包与目录的区别
- 包含__init__.py文件的目录成为包
- 目录里通常不包含__init__.py文件
包的导入
import 包名.模块 名
5.常用内置模块
模块名 | 描述 |
---|---|
sys | 与Python解释器及其环境操作相关的标准库 |
time | 提供与时间相关的各种函数的标准库 |
os | 提供了访问操作系统服务功能的标准库 |
calendar | 提供与日期相关的各种函数的标准库 |
urllib | 用于读取来自网上(服务器)的数据标准库 |
json | 用于使用JSON序列化和反序列化对象 |
re | 用于在字符串中执行正则表达式匹配和替换 |
math | 提供标准算术运算函数的标准库 |
decimal | 用于进行精确控制运算精度、有效数位和四舍五入操作的十进制运算 |
logging | 提供了灵活的记录事件、错误、警告和调试信息等目志信息的功能 |
6. 第三方模块的安装及使用
- 安装
pip install 模块名
- 使用
import 模块名
- 总结
十二 . 编码及文件操作
1. 编码格式介绍
常见的字符编码格式
- Python的解释器使用的是Unicode(内存)
- .py文件在磁盘上使用UTF-8存储(外存)
文件读写
- 文件的读写俗称”IO操作“
- 文件读写操作流程
- python操作文件
- 打开或新建文件
- 读,写文件
- 关闭资源
内置函数open()创建文件对象
语法规则
file = open(filename,[,model,encoding])
//file = 被创建的文件对象
//filename = 创建或打开的文件名称
//model = 打开方式(默认为只读)
//encoding = 打开的编码格式(默认为gbk)
文件读取
file = open('test.txt','r',encoding='utf-8')
print(file.name)
print(file.readlines())
file.close()
2. 文件的读写原理
3. 文件读写操作
文件的打开方式
使用open(filename,'w',encoding="utf-8") 时,会将源文件内容读取到内存。
如果此时程序异常退出时,会丢失文件内容
文件的类型
- 按文件中数据的组织形式,文件分为以下两大类
- 文本文件:存储的是普通“字符"文本,默认为unicode字符集,可以使用记本事程序打开
- 二进制文件: 把数据内容用“字节"进行存储,无法用记事本打开,必须使用专用的软件打开,举例: mp3音频文件,jpg图片.doc文档等
打开模式描述
打开模式 | 描述 |
---|---|
r | 以只读模式打开文件,文件的指针将会放在文件的开头 |
w | 以只写模式打开文件,如果文件不存在则创建,如果文件存在,则覆盖原有内容,文件指针在文件的开头 |
a | 以追加模式打开文件,如果文件不存在则创建,文件指针在文件开头,如果文件存在,则在文件末尾追加内容,文件指针在原文件末尾 |
b | 以二进制方式打开文件,不能单独使用,需要与共它模式一起使用,rb,或者wb |
+ | 以读写方式打开文件,不能单独使用,需要与其它模式一起使用,a+ |
4. 文件对象常用的方法
文件对象常用方法
方法名 | 描述 |
---|---|
read([size]) | 从文件中读取size个字节或字符的内容返回。若省略[size],则读取到文件末尾,即一次读取文件所有内容 |
readline() | 从文本文件中读取一行内容 |
readlines() | 把文本文件中每一行都作为独立的字符串对象,并将这些对象放入列表返回 |
write(str) | 将字符串str内容写入文件 |
writelines(s_list) | 将字符串列表s_list写入文本文件,不添加换行符 |
seek(offset[,whence]) | 把文件指针移动到新的位置,offset表示相对于whence的位置:offset:为正往结束方向移动,为负往开始方向移动 whence不同的值代表不同含义: 0:从文件头开始计算(默认值) 1:从当前位置开始计算 2:从文件尾开始计算 |
tell() | 返回文件指针的当前位置 |
flush() | 把缓冲区的内容写入文件,但不关闭文件 |
close() | 把缓冲区的内容写入文件,同时关闭文件,释放文件对象相关资源 |
5. with语句(上下文管理器)
with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确的关闭,以此来达到释放资源的目的
with语句可以自动管理上下文资源,无论程序是否发生错误,都会执行exit方法
with open('b.txt','r',encoding='utf8') as file:
print(file.read())
"""
User对象实现了特殊方法 enter 和exit 称为该对象遵守了上下文管理协议
该对象的实例对象称之为上下文管理器。使用with关键字可以自动代理上下文管理
"""
class User:
def __enter__(self):
print("进入enter方法")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("执行推出方法")
def say(self):
print("你好!!!")
u = User()
u.say()
with User() as u1:
u1.say()
6. 目录操作
- os模块是Python内置的与操作系统功能和文件系统相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同的操作系统上运行,得到的结果可能不一样。
- os模块与os.path模块用于对目录或文件进行操作
OS模块操作目录相关函数
函数 | 说明 |
---|---|
getcwd() | 返回当前的工作目录 |
listdir(path) | 返回指定路径下的文件和目录信息 |
mkdir(path[, mode]) | 创建目录 |
makedirs(path1/path2.. . [, mode]) | 创建多级目录 |
rmdir(path) | 删除目录 |
removedirs(path1/path2... ...) | 删除多级目录 |
chdir(path) | 将path设置为当前工作目录 |
os.path模块操作目录相关函数
函数 | 说明 |
---|---|
abspath(path) | 用于获取文件或目录的绝对路径 |
exists(path) | 用于判断文件或目录是否存在,如果存在返回True,否则返回False |
join(path, name) | 将目录与目录或者文件名拼接起来 |
splitext() | 分离文件名和扩展名 |
basename(path) | 从一个目录中提取文件名 |
dirname (path) | 从一个路径中提取文件路径,不包括文件名 |
isdir(path) | 用于判断是否为路径 |
import os
print(os.path.exists("demo11.py"))
print(os.path.split("D:\工作文件\python工作空间\my1\demo1\demo11.py"))
print(os.getcwd())
print(os.path.isdir("demo11.py"))
#获取指定目录下的所有py文件
files = os.listdir(os.getcwd())
for file in files:
if file.endswith(".py"):
print(file)
import os
cur = os.getcwd()
files = os.walk(cur) #使用walk得到当前目录下的所有文件及子文件。返回一个元组列表
for item in files:
print(item)
#也可以使用下面的方式遍历
for filePath,fileDir,file in files:
print(filePath)
print(fileDir)
print(file)
for dir in fileDir:
print(os.path.join(filePath,dir))
for fi in file:
print(os.path.join(filePath,fi))
print("--------------------")
正文到此结束
- 本文标签: python
- 本文链接: https://www.tianyajuanke.top/article/47
- 版权声明: 本文由吴沛芙原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权