Python文件操作

python文件读写模式

'''
1、with语法支持一次性打开多个文件
withopen(r'a.txt','r',encoding='utf8')asf1,open(r'b.txt','r',encoding='utf8') as f2...:
2、补全python语法,但是不执行任何操作
pass(推荐使用) ② ...(不推荐使用 容易遗漏)
3、通常情况下英语单词的结尾如果更上了able表示具备该单词描述的能力
readable 具备读取内容的能力
writable 具备填写内容的能力
'''
1、r(只读模式) 默认情况下用的是r模式
使用该模式下打开的文件只可以读取内容 不能做其他操作(不可编写)
       # 文件路径不存在:r模式直接报错
       # with open(r'c.txt','r',encoding='utf8') as f:
       #   print(f.read())
       # 文件路径存在:r模式会打开文件等待读取文件内容
       # with open(r'a.txt','r',encoding='utf8') as f:
       #   print(f.read())
       #   f.write('123')
2、w(只写模式)
使用该模式下打开的文件只可以编写内容 不能做其他操作(不可读取)
       # 文件路径不存在:w模式会自动创建该文件
       # with open(r'c.txt','w',encoding='utf8') as f:
       #     pass
       # 文件路径存在:w模式会先清空该文件内容 之后等待填写新内容
       # with open(r'a.txt','w',encoding='utf8') as f:
       #     pass
3、a(只追加模式)
使用该模式下打开的文件默认只能在末尾追加新的内容 不能做其他操作
       # 文件路径不存在:a模式会自动创建该文件
       # with open(r'd.txt','a',encoding='utf8') as f:
       #   pass
       # 文件路径存在:a模式不会先清空该文件内容 只在文件末尾填写新内容
       # with open(r'b.txt','a',encoding='utf8') as f:
       #     f.write('不要溜号\n')

文件的操作模式

t(文本模式)
文件操作的默认模式
  r  rt
       w  wt
       a  at
   1、只能操作文本文件 不能操作视频 音频 图片
   2、必须制定encoding参数 不填写有可能会造成编码不一样
   3、读写都是以字符串(str)为单位  
b(二进制模式)
rb wb ab  必须自己制定 不能省略
   1、能够操作所有类型的文件
   2、不需要制定encoding参数
   3、读写都是以bytes为单位

文件的诸多操作方法

read()  一次性读取文件内容并且光标会停留在文件末尾 继续则为空
       with open(r'a.txt', 'r', encoding='utf8') as f:
       #     data = (f.read()) # 一次性读取文件内容
       #     print(data)
       #     data1 = f.read()
       #     print(data1)
readline() 一次只读一行内容
       with open(r'a.txt', 'r', encoding='utf8') as f:
       #     data = f.readline()
       #     print(data)
       #     data1 = f.readline()
       #     print(data1)
readlines() 一次性读取所有文件数据 并且按照行组成列表的一个个数据值
       with open(r'a.txt', 'r', encoding='utf8') as f:
       #     data = f.readlines()
       #     print(data)
readable() 判断当前文件可读 True or False
writable() 判断当前文件是否可写 True or False
'''当文件数据较大的时候 不推荐一次性读取'''
for line in f
  print(line) 文件对象支持for循环一次只读一行
write()填写文件内容
writelines() 支持填写容器类型(内部可以存放多个数据值的数据类型 例如列表 字典 元祖 集合等)
flush()将内存中的文件数据立刻刷到硬盘(类似于主动按了Ctrl+s)
 
posted @ 2022-06-29 18:47  初学者-11  阅读(42)  评论(0编辑  收藏  举报