Python 文件操作(创建、读取、追加、图片视频读取)
时间:02-28来源:作者:点击数:
一、简介
- 举例,操作一个文本文件:
# 1、找到文件,双击打开
# 2、读或者修改
# 3、保存&关闭
# 用 python 来操作如下:
f = open(filename) # 打开文件
f.write('dzm') # 写入
f.read() # 读取
f.close() # 保存并关闭
- 不过有一点跟人为操作不同,打开文件操作时,人为的是可读可写。
但是 python 有点傻,只能以 读、创建、追加 3 种模式中任意一种打开文件,不能既写又读,也就是读的模式打开只能读,写的模式打开只能写。
- 文本模式打开文件
- r:只读模式
- w:创建模式,若文件已存在,则覆盖旧文件
- a:追加模式,新数据会写到文件末尾
# 文件模式 - 创建
f = open('test.txt', 'w')
f.write('dzm')
f.close()
- 2进制模式 打开文件
- rb:只读模式
- wb:创建模式,若文件已存在,则覆盖旧文件
- ab:追加模式,新数据会写到文件末尾
通过 2进制模式 读出来的数据就是 bytes 字节类型,到时候写进去的也得是 bytes 字节类型:
# 2进制模式 - 创建
f = open('test.txt', 'wb')
f.write('xyq'.encode())
f.close()
二、基本操作(创建、读取、追加)
# 创建模式
f = open('test.txt', 'w')
# 写入
f.write('a\n')
f.write('b\n')
f.write('c\n')
# 保存并关闭
f.close()
# 现在的 f 是创建模式,读取会报错
# f.read()
# 只读模式(默认模式)
f = open('test.txt', 'r')
# 读取全部内容
# print(f.read()) # a b c
# 读取一行内容
# print(f.readline()) # a
# 读取所有行内容(数组)
print(f.readlines()) # ['a\n', 'b\n', 'c\n']
# 现在的 f 是只读模式,写入会报错
# f.write('d\n')
# 只读模式(默认模式)
f = open('test.txt', 'r')
# 读取一行内容
print(f.readline()) # a
# 读取剩下的全部内容
print(f.read()) # b c
# 之所以会输出为这样,可以理解为读取内容的时候有个光标,读了第一行之后,光标到第二行了,在继续读只会从第二行开始。
# 只读模式(默认模式)文件编码格式指定
f = open('test.txt', 'r', encoding='gbk')
# 读取全部内容
print(f.read()) # 中国
# 追加模式
f = open('test.txt', 'a')
# 追加
f.write('d\n')
# 保存并关闭
f.close()
# 在追加模式下,也只能追加,不能读,不然也会报错。
三、图片、视频文件读取