#以下内容均在正常打开文件的情况下运行

一、列表格

模式可做操作若文件不存在是否覆盖
r只能读报错---
r+可读可写报错
w只能写创建
w+可读可写创建
a只能写创建否,追加
a+可读可写创建否,追加
b-----(二进制读取方式)---------(配合读写使用)-----

  其实这里的读写很好理解,但是对于a和a+,他们是文本追加(这里要注意覆盖并不是覆盖重复内容,而是覆盖全部内容)------也就是重写文件(回档,哈哈哈)

加不加b取决于文件的文本形式

2.1写文件加读取文件

#不追加,但是每次都会覆盖之前写的(任何字段都会覆盖,)
# with open('name.txt','w',encoding='utf8')as f:
# f.writelines("0001"+'\n'+'小明'+'\n'+'1701班') # with open('name.txt','r',encoding='utf8')as f:
# for line in f.readlines():
# print(line,end='')
#readlines()读取多行,就是有s和没有s的区别
# with open('demo2.txt','r',encoding='utf8')as f:
# for line in f.readlines():
# print(line,end='')

2.2文件的追加写入

文件读取
# with open('demo.txt','r',encoding='utf8')as f:
# for line in f.readlines():
# print(line,end='') # #文件追加写入
# with open('demo.txt','a+',encoding='utf8')as f:
# f.write('\n')
# f.write('you are a boy!')

2.3二进制的读取(简单解释一下)

读文件 进行读文件操作时,直到读到文档结束符(EOF)才算读取到文件最后,Python会认为字节\x1A(26)转换成的字符为文档结束符(EOF),

      故使用'r'进行读取二进制文件时,可能会出现文档读取不全的现象。 

示例:
     二进制文件中存在如下从低位向高位排列的数据:7F 32 1A 2F 3D 2C 12 2E 76
     如果使用'r'进行读取,则读到第三个字节,即认为文件结束。
     如果使用'rb'按照二进制位进行读取的,不会将读取的字节转换成字符,从而避免了上面的错误。

05-21 15:23