引言:
>最近在学习python的文件读取,学习完总结一下。paython对文件的操作不像java复杂,python没有很多流。所以操作非常简单
内容:
创建文件对象:open()函数用于创建文件对象,我们可以打开源码看看它的参数(如下图).很明显,第一个是文件名的路径,第二个是打开方式。基本语法就是open("文件路径","打开方式")
如果只是文件名,代表在当前目录下的文件。当然文件名可以录入全路径,比如:D:a.txt。为了减少“”的输入,可以使用原始字符串:r“d:.txt”。文件的打开方式有如下几种:
模式 | 描述 |
---|---|
r | 读 read 模式 |
w | 写 write 模式。如果文件不存在则创建;如果文件存在,则重写新内容; |
a | 追加 append 模式。如果文件不存在则创建;如果文件存在,则在文件末尾追加内容 |
b | 二进制 binary 模式(可与其他模式组合使用) |
+ | 读、写模式(可与其他模式组合使用) |
(1)
文件的写入:文件的写入有两种方式。
1、基本方式:创建文件对象--->写入数据--->关闭文件对象
1
2
3
4
f = open("a.txt","w",encoding="utf-8") #encoding="utf-8"防止中文乱码
f.write("我爱python")
#f.writelines() 可以将列表的内容写入文件
f.close()
运行结果:
对文件执行完后一定要关闭文件。因为我文件操作的底层是:当我们写代码对文件进行写入时,执行时会先调用python解释器,然后解释器调用操作系统,操作系统再对我们的硬盘进行工作。如果我们不关闭,就会有很多的资源浪费。
2、with 语句(上下文管理器):with 关键字(上下文管理器)可以自动管理上下文资源,不论什么原因跳出 with 块,都能 确保文件正确的关闭,并且可以在代码块执行完毕后自动还原进入该代码块时的现场。所以当我们用with语句时,就可以不用用close()方法。
1
2
with open("b.txt","w",encoding="utf-8") as f:
f.write("努力学习!")
运行结果:
(2)
文件的读:文件的读取一般使用以下三种方法
- read(size) 从文件中读取 size 个字符,并作为结果返回。如果没有 size 参数,则读取整个文件。 读取到文件末尾,会返回空字符串。
- readline() 读取一行内容作为结果返回。读取到文件末尾,会返回空字符串。
- readlines() 文本文件中,每一行作为一个字符串存入列表中,返回该列表
按行读取:
1
2
3
4
5
6
7
8
with open("c.txt","r",encoding="utf-8") as r:#encoding="utf-8"一定得写,否则会出现解码失败的问题
while True:
str = r.readline()
if not str:
break;
else:
print(str,end="")
运行结果:
(3)
二进制文件的操作:只要在文本文件操作的基础上,用二进制进行读写。方法都一样(下面列个读图片的例子)
1
2
3
with open("gaoyuanyuan.jpg","rb") as r:
with open("copy.jpg","wb") as w:
w.write(r.read())
运行结果:
结尾:
python的文件操作简单,易上手,有成就感。