美文网首页
python学习笔记之--文件操作

python学习笔记之--文件操作

作者: itsenlin | 来源:发表于2022-03-06 22:04 被阅读0次

文件

概念

在python中文件的概念与*nix系统很类似,文件只是连续的字节序列。

内建函数

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

返回一个file类型对象,参数很多,但是常用的有三个filemodeencoding

  • file: 必需,文件路径(相对或者绝对路径)。
  • mode: 可选,文件打开模式,默认'r'
  • buffering: 设置缓冲,有以下取值
    1. 0表示不缓冲
    2. 1表示缓冲一行
    3. >1表示使用给定值为缓冲区大小
    4. -1表示使用系统默认缓冲
  • encoding: 默认使用utf8
  • errors: 报错级别
  • newline: 区分换行符
  • closefd: 传入的file参数类型
  • opener: 设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。

文件操作模式

文件操作模式与C语言类似可以参考fopent()接口
基本模式如下:

模式 说明
r 以读模式打开,指针指向文件开头
wx 以写模式打开:如果文件已存在x模式会报错,而w模式会清空原有内容重新写入;如果文件不存在,两种模式都会新建一个文件
a 追加模式:如果该文件已存在,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
b 二进制模式:不能单独使用,需要放在其他模式后面使用
+ 可读可写模式:不能单独使用,需要放在其他模式后面使用

还有一些组合模式

模式 说明
r+w+a+ 以读写模式打开文件。区别:文件不存在时r+会报错,w+a+会新建;文件存在时a+指针指向文件结尾,r+w+指针指向文件开头
rb+wb+ab+ 以二进制读写模式打开文件。区别:文件不存在时rb+会报错,wb+ab+会新建;文件存在时ab+指向文件结尾,wb+rb+指向文件开头
rb 以二进制只读模式打开,指针会指向文件开头
wbab 以二进制只写模式打开,区别:wb模式指针指向文件开头;ab模式指针指向文件结尾

文件操作

文件操作定式

文件操作一般是三个步骤

  1. open接口打开一个文件,返回一个file对象
  2. 通过file对象对文件进行操作
  3. 调用file对象的close接口关闭文件

第一步前面已经学习,这里学习下后面两步

文件对象

open接口返回值是一个file对象,文件的操作动作都需要依赖这个file对象;可以分为以下四类

  • 读操作
接口 说明
file.read([size]) 最多读取size个字节的数据放到字符串中返回,size不提供或者<0(默认-1),文件将读取到末尾
file.readline([size]) 读取一行数据(包括行结束符),参数类似read接口
file.readlines([size]) 读取文件所有行,以字符串列表形式返回;若给定size>0,返回总和大约为size字节的行, 实际读取值可能比 size较大, 因为需要填充缓冲区
  • 写操作
接口 说明
file.write(str) 将字符串写入文件,返回的是写入的字符长度。
file.writelines(list) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符
file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
  • 指针移动操作
接口 说明
file.tell() 返回文件指针的位置
file.seek(offset[, whence]) 移动文件读取指针到指定位置;offset表示偏移量,whence表示偏移的起始位置:0 代表从文件开头(默认);1 代表当前位置;2 代表文件末尾。
  • 文件关闭
接口 说明
file.close() 关闭文件。关闭后文件不能再进行读写操作。

实例

try:
    f = open("test.txt")
    for line in f.readlines():
        print(line)
except IOError as err:
    print(f"find error when operate file: {err}")
else:
    f.close()

例子中当文件存在时,打印文件内容;当文件不存在时,会打印find error when operate file: <具体的错误信息>

python语言中增加了一个上下文管理(with语句)简化了这种文件操作,不需要使用异常处理,上面例子可以改造成如下:

with open("test.txt") as f:
    for line in f:
        print(line)

深入

标准文件

类似C语言,程序运行过程中有三个标准文件默认可用:

  • stdin表示标准输入,一般键盘输入
  • stdout表示标准输出,一般是显示器显示,带缓冲
  • stderr表示标准错误,一般是显示器显示,不带缓冲

在python中使用时,需要依赖sys模块:sys.stdinsys.stdoutsys.stderr

文件系统操作

对于文件系统操作,像目录操作、文件权限操作、文件路径操作等在python的os模块以及os.path模块中

相关文章

网友评论

      本文标题:python学习笔记之--文件操作

      本文链接:https://www.haomeiwen.com/subject/zppwrrtx.html