Python-文件操作

发布于 2020-06-20  672 次阅读


文件操作

      打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。

打开文件的模式有:

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

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

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

 "b"表示以字节的方式操作

  • rb  或 r+b
  • wb 或 w+b
  • xb 或 w+b
  • ab 或 a+b

 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

Table 文件对象方法

方法描述
f.close()关闭文件,记住用open()打开文件后一定要记得关闭它,否则会占用系统的可打开文件句柄数。
f.fileno()获得文件描述符,是一个数字
f.flush()刷新输出缓存
f.isatty()如果文件是一个交互终端,则返回True,否则返回False。
f.read([count])读出文件,如果有count,则读出count个字节。
f.readline()读出一行信息。
f.readlines()读出所有行,也就是读出整个文件的信息。
f.seek(offset[,where])把文件指针移动到相对于where的offset位置。where为0表示文件开始处,这是默认值 ;1表示当前位置;2表示文件结尾。
f.tell()获得文件指针位置。
f.truncate([size])截取文件,使文件的大小为size。
f.write(string)把string字符串写入文件。
f.writelines(list)把list中的字符串一行一行地写入文件,是连续写入文件,没有换行。

 read(3)代表读取3个字符,其余的文件内光标移动是以字节为单位,如:seek,tell,read,truncate

f.flush()      #讲文件内容从内存刷到硬盘(python3.x)

f.closed       #文件如果关闭则返回True

f.encoding   #查看使用open打开文件的编码

f.tell()         #查看文件处理当前的光标位置

f.seek(3)     #从开头开始算,将光标移动到第三个字节

f.truncate(10) #从开头开始算,将文件只保留从0-10个字节的内容,文件必须以写方式打开,但是w和w+除外。


对文件操作的流程

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

with...open... 可以从一个文件中读取数据,这是所有Python开发者都非常熟悉的操作。

# 一次性读取
with open("file.txt", "r") as fp:
    content = fp.read()

with...open... 是管理上下文(实现了__enter__、__exit__两个魔术方法),当with代码块执行完成后,会自动关闭并释放文件资源。


一名测试工作者,专注接口测试、自动化测试、性能测试、Python技术。