一、IO
1、文件
在计算机中,文件是以二进制的方式保存到磁盘上的
2、文本文件和二进制文件
- 文本文件
- 可以使用文本编辑软件查看
- 本质上还是二进制文件
- 例如:python 的源程序
- 打开文件
- 读写文件
- 关闭文件
操作文件的函数/方法
在python中操作文件就需要记住1个函数和3个方法
序号 | 函数/方法 | 说明 |
---|---|---|
01 | open() | 打开文件,并且返回文件操作对象 |
02 | read() | 将文件内容读取到内存 |
03 | write() | 将指定内容写入文件 |
04 | close() | 关闭文件 |
**open()**
函数负责打开文件,并且返回文件对象
**read()/write()/close()**
三个方法都需要通过返回的文件对象来调用
**
4、read() 方法 — 读取文件
open() 函数 的第一个参数是要打开的文件名 (文件名区分大小写)
- 如果文件 存在, 返回文件操作对象
- 如果文件不存在,会抛出异常
read() 方法可以一次性 读入并且返回文件的所有内容
close() 方法负责关闭文件
**
如果忘记关闭文件,会造成系统资源消耗,而且会影响到后续对文件的访问
注意:方法执行后,会把文件指针移动到文件末尾
if __name__ == '__main__':
# 打开HelloWorld.txt 文件,区分大小写
file = open("HelloWorld.txt")
# 读取,返回一个str
text = file.read()
print(text)
# 关闭 文件
file.close()
5、python中打开文件的方式
就是open()
函数的第二个参数open()
函数默认以只读的方式 打开文件,并且返回文件对象
语法如下:f = open("HelloWorld.txt","访问方式")
访问方式 | 说明 |
---|---|
r | 只读,默认模式,找不到文件抛异常,文件 指针在开头 |
w | 以只写方式 打开文件,如果文件存在 会被覆盖,如果不存在,创建新文件 |
a | 以追加方式,如果文件存在 文件指针在尾部,如果文件不存在 创建新文件写入 |
r+ | 以读写的方式,文件指针在头部,文件不存在抛出异常 |
w+ | 以读写的方式,如果文件存在会被覆盖,不存在创建新文件 |
a+ | 以读写的方式,如果文件存在,指针在尾部, 如果文件不存在 那么就创建文件写入 |
提示:频繁的移动文件指针,会影响我呢见的读写效率,开发中更多的时候会以 只读,只写的方式来操作文件
6、readline() 方法 按行读取文件内容
readline()
方法可以一次读取一行内容
方法执行后,会把 文件指针移动到下一行,准备再次读取
6.1 读取大文件的正确姿势 (减轻内存压力)
if __name__ == '__main__':
# 打开文件
file = open("Student.sql")
while True:
# 读取一行内容
text = file.readline()
# 判断是否读到内容
if not text:
break
# 每读取一行的末尾已经有了一个'\n'
print(text, end="")
# 关闭文件
file.close()
二、OS 文件/目录的常用管理操作
- 在终端/文件浏览器,中可以执行常规的 文件/目录 管理操作,例如:
- 创建、重命名、删除、改变路径、查看目录内容 ……
- 在python中,如果希望通过程序实现上述功能,需要导入os 模块
1、文件操作
序号 | 方法名 | 说明 | 示例 |
---|---|---|---|
01 | rename() | 重命名文件 | os.rename(源文件名,目标文件名) |
02 | remove() | 删除文件 | os.remove(文件名) |
2、目录操作
序号 | 方法名 | 说明 | 示例 |
---|---|---|---|
01 | listdir | 目录列表 | os.listdir(目录名) |
02 | mkdir | 创建列表 | os.mkdir(目录名) |
03 | rmdir | 删除目录 | os.rmdir(目录名) |
04 | getcwd | 获取当前哦工作目录 | os.getcwd() |
05 | chdir | 修改工作目录 | os.chdir(目标目录) |
06 | path.isdir | 判断是否是文件 | os.path.isdir(文件路径) |
三、pip 安装第三方模块
- 第三方模块通常是指由知名的第三方团队 开发的,并且被程序员广泛使用的 python包 / 模块
- 例如 pygame 就是一套非常成熟的 游戏开发模块
**
- pip 是一个现代的,通用的 python 包管理工具
- 提供了对python包的查找,下载,安装,卸载等功能
四、eval() 函数十分强大
eval() 函数十分强大, 将字符串当成有效的表达式来求值,并返回计算结果
print(eval("1+1")) # 输出 2
在开发中千万不要使用eval 直接转换 input 的结果
容易造成漏洞