1. 读取文件
1.1 'r'模式
以只读方式打开文件,文件的指针将会放在文件的开头。是文件操作最常用的模式,也是默认模式,如果一个文件不设置mode,那么默认使用r模式操作文件。
创建一个文件,里边随便输入几个字母或数字并记录文件位置(想对文件进行操作,必须先知道文件的位置)
f = open('xxx.txt',mode='r',encoding='utf-8') # 获取文件句柄 re = f.read() # 读取文件 print(re) f.close() # 关闭文件句柄 # 结果: # nihao # nihao # nihao
read()将文件中的内容全部读取出
弊端: 如果文件很大就会非常的占用内存,容易导致内存奔溃
1.1.2 read(n)
read()读取的时候指定读取到什么位置,在r模式下,n按照字符进行读取
f = open('xxx.txt',mode='r',encoding='utf-8') # 获取文件句柄 re = f.read(9) # 读取文件 print(re) f.close() # 关闭文件句柄 # 结果: # nihao # nih
1.2 readLine()
readLine()读取的每次只读取一行,读取出来的数据在后边会有一个
f = open('xxx.txt',mode='r',encoding='utf-8') # 获取文件句柄 re = f.readline() # 读取文件 print(re) re = f.readline() # 读取文件 print(re) f.close() # 关闭文件句柄 # 结果: # nihao # # nihao
1.3 readLines()
readlines() 返回一个列表,列表里面每个元素是原文件的每一行,如果文件很大,占内存,容易崩盘。
f = open('xxx.txt',mode='r',encoding='utf-8') # 获取文件句柄 re = f.readlines() # 读取文件 print(re) f.close() # 关闭文件句柄 # 结果: # ['nihao ', 'nihao ', 'nihao']
rb模式
rb模式:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。记住下面讲的也是一样,带b的都是以二进制的格式操作文件,他们主要是操作非文字文件:图片,音频,视频等,并且如果你要是带有b的模式操作文件,那么不用声明编码方式。
rb模式也有read read(n) readline(),readlines() for循环这几种方法,跟上边差不多
f1 = open('海贼王1.jpg',mode='rb') # 使用相对定位对照片进行操作 content = f1.read() print(content) # b'xffxd8xffxe0x00x10JFIF... f1.close()
2. 写文件
2.1 'w'模式
如果文件不存在,利用w模式操作文件,那么它会先创建文件,然后写入内容,如果文件存在,利用w模式操作文件,先清空原文件内容,在写入新内容。
2.2 'wb'模式
以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如:图片,音频,视频等。
f1 = open('海贼王1.jpg',mode='rb') # 使用相对定位对照片进行操作 f2 = open('海贼王5.jpg',mode='wb') content = f1.read() f2.write(content) # 如若没有该照片,则创建一个并复制 f1.close() f2.close()