pytho之文件处理

一 文件处理流程

  1. 打开文件,得到文件句柄并赋值给一个变量
  2. 通过句柄打开文件进行操作
  3. 关闭文件

二 基本操作

2.1 文件操作基本流程

1 f_read = open("text",encoding='utf8')
2 data=f_read.read()
3 print(data)
4 f_read.close()

2.2 文件编码

打开文件要用它存储的编码模式打开,否则会报错或者出现乱码。

2.3 文件的打开方式

打开文件时,需要指定文件路径以及打开的方式,打开后,即可获得文件句柄,用文件句柄对文件进行操作。

1 文件句柄 = open("文件路径", "模式")

打开文件的模式:

  • r:只读模式【默认模式,文件必须存在,不存在会报错】
  • w:只写模式【不可读;文件不存在则创建;存在则清空neir】
  • x:只写模式【不可读;文件不存在则创建;存在则报错】
  • a:追加模式【可读;不存在则创建;存在则以追加内容】

”+“表示可以同时读写某个文件

  • r+:读写【可读,可写】
  • w+:写读【可读,可写】
  • x+:写读【可读,可写】
  • a+:写读【可读,可写】

”b“表示以字节的方式操作

  • rb或r+b
  • wb或w+b
  • xb或x+b
  • ab或a+b
  • 以b方式打开时,读取到的内容是字节型,写入时也需要提供字节类型,不能指定编码。
  • 要查看实际内容要解码,用decode()函数
  • 将字符串转换成二进制用bytes()函数
  • 好处:可以处理不同的文件

with方式打开文件:

1 with  open("text",encoding="utf8") as f_read:
2     data=f_read.read()
3     print(data)
4     f_read.close()
  • 不需要自己关闭文件,操作系统自动帮忙完成
  • with还可以同时打开多个文件
1 with  open("text",encoding="utf8") as srcf,
2     open("text_new","w",encoding="utf8") as dst_f:
3     data=srcf.read()
4     dst_f.write(data)

2.4文件内置函数flush

  1. 文件操作通过软件将文件从硬盘读到内存
  2. 写文件的操作也都是存入内存缓冲区buffer
  3. flush,强制将写入的数据刷到硬盘

2.5 文件的其他函数

 1 f = open("text","r+",encoding="utf8")
 2 
 3 f.readline() # 读取一行
 4 
 5 f.readlines() # 读取所有的内容放在列表中
 6 
 7 f.seek()#控制光标的移动
 8 
 9 f.tell()#光标当前所在位置
10 
11 f.truncate()#文件截断(在写文件)
12 
13 f.closed #判断文件是否关闭
14 
15 f.encoding#取文件打开的编码
16 
17 f.name #获取文件名
18 
19 f.close()

2.6 文件光标移动

注意:

  • reas(3)代表读取三个字符,其余的文件内光标移动都是以字节为单位如,seek,  tell,  read,  truncate。
  • 0模式不用指定文件打开方式;1,2模式要用rb的方式打开文件
    f = open("text","rb")
    
    f.seek(6) #光标在第六个位置
    
    f.seek(3,0)#0模式从头开始seek
    
    f.seek(10,1))#1模式从当前位置seek
    
    f.seek(-10,2))#2模式从最后位置seek,倒着seek前面参数用负数
    
    f.close()
原文地址:https://www.cnblogs.com/kaixindexiaocao/p/9720164.html