目录
目录
前言
要处理数据,就要操作文件,今天我们来学习一下最基本的python操作文件的方式。
(一)基础类型
r | 只读 |
---|---|
w | 只写 |
a | 追加 |
1.只读
(1)说明
打开文件时,不写读写模式,只读时默认值。文件的指针会放在开头,也就是从头读起,
当文件不存在时,会报错。
若操作写操作,会报错。
(2)源代码
# 1.打开文件
f = open("a.txt", "r")
# 2.读写操作
content = f.read()
print(content)
# 3.关闭文件
f.close()
(3)输出效果
a.txt文件只写有:123def
2.只写
(1)说明
以只写的方式打开文件,清空之前的内容,指针再开头处。
若文件不存在,则会创建一个新的文件。
若操作读操作会报错。
(2)源代码
# 1.打开文件
f = open("b.txt", "w")
# 2.读写操作
f.write("abcdefg")
# 3.关闭文件
f.close()
(3)输出效果
3.追加
(1)说明
与只写的方式一样,唯一的取别在于,再进行写操作的时候,指针是在结尾处,在后面追加内容。
(2)源代码
# 1.打开文件
f = open("c.txt", "a")
# 2.读写操作
f.write("456")
# 3.关闭文件
f.close()
(3)输出效果
原本从 c.txt 只有abcdefg 的内容。
(二)b二进制组合
操作二进制文件,例如图片,视频,音频等
rb | 只读二进制文件 |
---|---|
wb | 只写二进制文件 |
ab | 追加二进制文件 |
1.读写二进制文件
(1)说明
我们把一张图片的一半二进制数据写入另一张图片会怎么样?
请看下面操作
(2)源代码
# 1.得到数据源
# 1.1 打开文件
from_file = open("from.png", "rb")
# 1.2 读取文件
from_content = from_file.read()
# 1.3 关闭文件
from_file.close()
# 2.写入到新的文件
# 2.1打开文件
to_file = open("to.png", "wb")
# 2.2 写入文件
to_content = from_content[0:len(from_content)//2]
to_file.write(to_content)
# 2.3关闭文件
to_file.close()
(3)输出效果
1)原图片
2)截取后的图片
(三)+ 附加组合
在之前单一功能的基础上,添加另一个功能。例如写可以添加读,读可以添加写。
r+ | 读附加 |
---|---|
w+ | 写附加 |
a+ | 追加附加 |
rb+ | 读二进制附加 |
wb+ | 写二进制附加 |
ab+ | 追加二进制附加 |
1.读附加
(1)说明
与只读的功能差不多,不过添加了写的功能,这个写的功能与只写的功能有区别。
这个写只根据指针的位置来写,即使指针在开头,也只是部分的覆盖。
(2)源代码
# 1.打开文件
f = open("a.txt", "r+")
# 2.读写操作
# 2.1读
content = f.read()
print(content)
# 2.2写
f.write("123")
# 3.关闭文件
f.close()
(3)输出效果
1)输出效果
2)追加后的文件
2.写附加
(1)说明
写附加,是添加了读的功能,不过没有指定位置时u,读出来的都是空的。
(2)源代码
# 1.打开文件
f = open("d.txt", "w+")
# 2.读写操作
# 2.1读
content = f.read()
print(content)
# 2.2写
f.write("123456")
# 2.3再读
content = f.read()
print(content)
# 3.关闭文件
f.close()
(3)输出效果
3.追加附加
(1)说明
其附加也是添加了读的功能,不过,在没有指定位置的时候,读出来的都是空的。
(2)源代码
# 1.打开文件
f = open("e.txt", "a+")
# 2.读写操作
# 2.1读
content = f.read()
print(content)
# 2.2写
f.write("abc")
# 2.3再读
content = f.read()
print(content)
# 3.关闭文件
f.close()
(3)输出效果
e.txt 追加前是:123456
e.txt 追加后是: 123456abc