床头笔记之Python编程实用函数(三)

Python File(文件)open 方法

python2中:
open(name[, mode[, buffering]])

打开文件,返回文件对象file部分中描述的类型的对象。如果文件无法打开, IOError则引发。

参数说明:
  • name: 必需,要打开的文件路径(相对或者绝对路径)的文件名。
  • mode: 可选,文件打开模式,默认为’r’
  • buffering: 设置缓冲参数
常用的模式值:
  • 'r’读取,
  • 'w’写入(截断文件,如果它已经存在),即清除原来文件内容
  • 'a’附加(在某些 Unix系统上,意味着所有写入都附加到文件的末尾,而不管当前的搜索位置)。
  • 追加’b’,二进制方式
  • 省略mode,则默认为’r’。默认设置是使用文本模式,该模式可以’\n’在写入时将字符转换
    为特定于平台的表示,并在读取时返回。因此,当打开荷兰国际集团的二进制文件,你应该追加’b’到模式值开在二进制模式的文件,这将提高便携性。(追加’b’即使在不以不同方式处理二进制文件和文本文件的系统上,它也很有用,它可用作文档。)有关模式的更多可能值,请参见下文。
  • 模式’r+’,'w+‘并’a+’ 打开文件进行更新(读写);
  • 请注意’w+'截断文件。
  • 在区分二进制文件和文本文件的系统上,附加’b’到以二进制模式打开文件的模式;
  • 在没有这种区别的系统上,添加’b’没有效果。
缓冲参数

可选的缓冲参数指定文件所需的缓冲区大小:

  • 0表示无缓冲,
  • 1表示行缓冲,
  • 任何其他正值表示使用(大约)该大小的缓冲区(以字节为单位)。
  • 负缓冲意味着使用系统默认值,通常为tty设备进行行缓冲,并为其他文件进行完全缓冲。 如果省略,则使用系统默认值。

Python提供了很多文件处理模块,包括 fileinput,os,os.path,tempfile,和 shutil。

python3中:

open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
打开 文件并返回相应的文件对象。如果无法打开文件,OSError则会引发
参数说明:

  • file: 必需,文件路径(相对或者绝对路径)。
  • mode: 可选,文件打开模式
  • buffering: 设置缓冲
  • encoding: 是用于解码或编码文件的编码的名称,一般使用utf8
  • errors: 报错级别,用于指定如何处理编码和解码错误
  • newline: 区分换行符
  • closefd: 传入的file参数类型,如果closefd是False并且给出了文件描述符而不是文件名,则在关闭文件时,底层文件描述符将保持打开状态。如果给出文件名,则closefd必须是True(默认值),否则将引发错误。
  • opener:
常用的模式mode值:

‘r’ :打开文件读取(默认)
‘w’: 打开写入,先截断文件,即清除原来文件内容
‘x’: 打开以进行独占创建,如果文件已存在则失败
‘a’ :打开以进行写入,如果存在则附加到文件的末尾
‘b’: 二进制模式,加r或w前缀对于二进制读写访问
‘t’ :文字模式(默认)
‘+’: 打开磁盘文件进行更新(读写)
‘U’: 通用换行模式(已弃用)

缓冲参数

buffering是一个可选的整数,用于设置缓冲策略。

  • 0以切换缓冲关闭(仅允许在二进制模式下),
  • 1选择行缓冲(仅在文本模式下可用),
  • 整数> 1以指示固定大小的块缓冲区的大小(以字节为单位)。
实例:
import os
dir_fd = os.open('somedir', os.O_RDONLY)
def opener(path, flags):
	return os.open(path, flags, dir_fd=dir_fd)
with open('spamspam.txt', 'w', opener=opener) as f:
	print('This will be written to somedir/spamspam.txt', file=f)
os.close(dir_fd)  # don't leak a file descriptor
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值