文件读取
文件读取主要包括三个模式 只读模式,只写模式,追加模式,读写模式
只读模式
# 只读模式用 r或者rb模式,rb主要用来读取bytes类型的文件或者图片文件这些
# 基本语法是 f=open("文件相对路径/,mode="r",encoding="utf-8")
# f=open("./1",mode="rb"
# mode是可以选则r和rb的,具体看文件类型,如果选用rb 则去掉encoding这个参数
f=open("./1",mode="r",encoding="utf-8") # 首先建立一个从文本到py文件的管道
content=f.read() # 从管道进行读取数据 并且将数据赋值给content
f.close()# 关闭管道
print(content)
'''
输出结果
张三,123
李四,234
王五,345
'''
#如果用的rb模式的话 那么读出来的是一个字节类型的文件
f=open("./1",mode="rb")
content=f.read()
f.close()
print(content) # 读出来是一个bytes类型的数据
#结果 b'\xe5\xbc\xa0\xe4\xb8\x89\xef\xbc\x8c123\r\n\xe6\x9d\x8e\xe5\x9b\x9b\xef\xbc\x8c234\r\n\xe7\x8e\x8b\xe4\xba\x94\xef\xbc\x8c345\r\n'
translate=content.decode("utf-8") # 我们对读出来的数据进行解码
print(translate)
'''
打印结果
张三,123
李四,234
王五,345
'''
# read和readline readlines
# read里面增加参数
f=open("./1",mode="r",encoding="utf-8")
content1=f.read(1) # 这个1 表示读取文档第一个字符 ,注意是字符 不是字节,一个中文字是一个字符,三个字节
content2=f.read(1)
f.close()
print(content1) # 结果 张
print(content2) # 结果 三
# 从上面打印结果看出来 当文档读取了第一个字符后 光标移动到第一个字符的后面
# 再往下读一个字符,从光标当前的位置开始读,直到下一个字符,即读到理第二个字符
# readline 表示读取一行的内容
f=open("./1",mode="r",encoding="utf-8")
content=contentf.readline() # 读取一行内容 读取一行后 光标移动到第二行的开头 下次读取就从光标的当前位置开始读取
f.close()
print(content)# 张三,123
#readlines
f=open("./1",mode="r",encoding="utf-8")
content=f.readlines() # 读取所有的内容 将内容存为列表赋值给content,列表的每个元素都是每一行的内容
# 所以读出来的内容可以用作for循环
f.close()
print(content)# ['张三,123\n', '李四,234\n', '王五,345\n']
写模式
# 写模式用 w 或者 wb,w可以直接把文本写入文件中,二wb必须把文本转化为utf-8的字符串 之后写入文件
# 基本语法 f=open("文件路径",mode="w",encoding="utf-8)
# f=open("文件路径",字符串文本.encoding("utf-8))
# 注意在写入模式的 如果当前路径存在该文件,那么会将该文件的内容全部清空 之后写入
# 如果不存咋 则会创建一个同名的文件,然后写入
f=open("./1",mode="w",encoding="utf-8")
f.write("你好\n")
f.write("我很好")
f.close()
f=open("./1",mode="r",encoding="utf-8")
content=f.readlines()
print(content) # ['你好\n', '我很好']
# 刚刚文件的张三 李四这些已经被清空了
追加模式
#追加模式用 a 表示add 是在现有的文件中增加内容 增加的内容添加到文件的末尾 如果当前路径没有文件,怎会创建文件然后写入
#基本语法f=open("文件路径",mode="a",encoding=""utf-8)
f