python学习笔记_文件操作

1.Python File文件处理 打开文件(open函数)

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

参数说明:

  • file: 必需,文件路径(相对或者绝对路径)。
  • mode: 可选,文件打开模式
  • buffering: 设置缓冲
  • encoding: 一般使用utf8
  • errors: 报错级别
  • newline: 区分换行符(用来控制文本模式之下,一行的结束字符。可以是 None,’’,\n,\r,\r\n 等)(写入时,都是将"/n"翻译成对应的字符)
  • closefd: 传入的file参数类型(如果 closefdFalse 并且给出了文件描述器而不是文件名,则当文件关闭时,基本文件描述器将保持打开。如果给定文件名,则 closefd 必须为 True(默认值),否则将产生错误。)
  • opener:用来实现自己定义打开文件方式

mode 参数有:

模式描述
x写模式,新建一个文件,如果该文件已存在则会报错。
U通用换行模式(不推荐)。
r只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

buffering:

  1. buffering设置为 0 时,即表示不使用缓冲,直接进行读写,但是这个设置只在二进制模式下有效

  2. buffering设置为 1 时,表示在文本模式下使用行缓冲区方式

  3. buffering设置大于 1 时,表示缓冲区的设置大小

errors:

可选参数,它指定 python 如何处理编码或解码错误,它也不能在二进制模式下使用。以下为一些标准错误的处理程序:

  1. 当指明为'strict' 时,编码出错抛出异常 ValueError,默认值 None 具有相同的效果。

  2. 'ignore'--- 忽略错误。请注意,忽略编码错误可能会导致数据丢失。

  3. 'replace' 使用某字符进行替代模式,(例如'?')插入到存在格式错误的数据的位置。

  4. 'surrogateescape' 将表示任何不正确的字节,作为从 U DC80 到 U DCFF 范围内的 Unicode 私人使用区域中的代码点。当写入数据时使用 surrogateescape 错误处理程序时,这些专用代码点将被转回相同的字节。这对于处理未知编码中的文件很有用。

  5. 仅当写入文件时,才支持'xmlcharrefreplace'。编码不支持的字符将替换为相应的 XML字符引用

  6. 'backslashreplace' 通过 Python 的反斜杠转义序列替换格式错误的数据。

文件操作的常用方法

1.file.read(size)

  读取文件按的全部或部分内容,size为读取文件内容的字符数

2.file.readline(size)

  返回文件中一行的内容,size为指定读取一行内容的范围

3.file.readlies()

   返回一个列表,列表中的每个元素为文件中的一行数据

4.file.write()

  将内容写入文件

5.file.tell()

  返回一个整数,表示文件指针的当前位置,即在二进制模式下距离文件头的字节数

6.file.seek(offset,whence)

  将文件的指针移动到新的位置,位置通过字节数进行指定

  offset 用于指定移动的字符个数,其具体位置与whence有关

  whence 用于指定从什么位置开始计算,0为开头,1为当前,2为文末,默认为0

7.file.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值