python全栈day8

一 文件操作

1.文件操作初识
 打开文件需要什么?
  1)文件路径
  2)编码方式:utf-8,gbk
  3)操作方式:只读,只写,写读,读写,追加
格式:
  f = open('文件路径',encoding = '编码方式',mode = '操作方式')
   1)f,变量f_obj,f_handler,f_h.fh,文件句柄
   2)open(),python的内置函数(内部调用的事windows的系统命令)

二 读

模式:
1 r模式
对于r模式mode可以默认不写
常出现的问题:
  1)编码不一致的问题:解决方式是将文件编码改为utf-8,或者在python中用一致的编码方式。
  2)路径问题报错:解决方式是在整个路径最前面加‘r’,每个反斜杠变成两个
  3)绝对路径和相对路径
绝对路径:从根目录下开始找的路径
相对路径:在文件夹内找
2 rb模式
在文件操作中凡是带b字母,都是与非文字类文件相关的。
以bytes类型打开。
3 r+模式
读写模式,先读后写,写的含义是追加,不是先清空再写
无论读文件里的什么内容,读多少,都是在文件后追加
而不读的话,光标就会从文件开头开始进行覆盖,写多少覆盖多少
4 r+b模式
方式:
f.read():全部读取
f.read(n):读指定个字符,在rb模式下,操作的单位是字节
f.readline():按行读取
f.readlines():返回一个列表,元素是每一行的数据
for循环(最优的方法)

三 写

没有文件时,创建文件也要写。
如果有文件,先清空再写入。
模式:
1 w模式
f = open('文件操作2',encoding = 'utf-8',mode = 'w')
f.write('深圳骑士计划一期')
f.close
2 wb模式
3 w+模式
写读模式,先清空文件写入,然后读取光标后的内容,但是没有什么实际含义
4 w+b模式

四 追加

没有文件创建文件,也要写
在后面直接追加,不会换行,要换行加' '
模式:
1)a模式
2)ab模式
3)a+模式
追加读,追加后再读,光标在最后,要读,必须移动光标
4)a+b模式

五 文件操作其他方法

  1)移动光标
seek() 无论r和rb模式都是按照字节去移动光标
把光标调整到开头seek(0)
把光标调整到结尾seek(0,2)
  2)readable(),writeable()
判断是否可读,是否可写。
  3)tell()
获取光标的位置。应用于断点续传。
  4)truncate()
截取数据,必须要在r+,a+模式下操作,不能在w模式下操作,对原文件进行截取,直接改变原文件
  5)read(n)
在r模式下,n的单位为字符,在rb模式下n的单位为字节

六.文件的改操作

1,以读模式打开原文件,产生一个文件句柄f1。
2,以写模式创建一个新文件,产生一个文件句柄f2。
3,读取原文件内容,进行修改,并写入。
4,将原文件删除。
5,将新文件重命名为原文件。
分类:
1,一次性将文件全部读出,全部改完
2,一行一行的改文件

补充:

对于不想或者经常忘记关闭文件的操作人员,推荐使用with
格式:
with open() as f1:
print(f1.read())
优点: 可以省去f.close()
可以对多个文件同时进行操作
缺点是:关闭文件时间不可控
原文地址:https://www.cnblogs.com/abner28/p/9470738.html