6.1Python文件的操作(一)
程序员文章站
2023-04-01 22:29:12
目录 [TOC] 前言 要处理数据,就要操作文件,今天我们来学习一下最基本的python操作文件的方式。 (一)基础类型 | r | 只读 | | | | | w | 只写 | | a | 追加 | ==1.只读== (1)说明 打开文件时,不写读写模式,只读时默认值。文件的指针会放在开头,也就是从 ......
目录
目录
前言
要处理数据,就要操作文件,今天我们来学习一下最基本的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