Python文件操作File Input and Output

简述

文件输入输出操作在编程中很常见。因此对这部分进行一些学习。文件是连续的字节序列,因此文件输入输出是基于文件系统的字节流操作。Python将一个文件作为一个对象来处理。

文件打开与关闭

open()函数用于打开一个文件对象,可使用相对路径或绝对路径,打开的是一个文件对象,实际就是一指针,因此应该不会开缓存来放文件数据。
file()函数(工厂函数)和open()同样的功能。
close()通过关闭文件来结束对它的访问。
fileno()方法返回打开文件的描述符。
flush()方法会直接把内部缓冲区中的数据立刻写入文件,而不是被动地等待输出缓冲区被写入。
isatty()是一个布尔内建函数,当文件是一个类tty设备时返回True,否则返回False。
truncate()方法将文件截取到当前文件指针位置或者到给定size,以字节为单位。

文件输入

read()读取字节到字符串中,read相关的应当是会开缓存来存放读取的文件数据的。
readline()读取已打开的文件的一行。
readlines()读取所有(剩余的)行然后把它们作为一个字符串列表返回。

文件输出

write()把含有文本数据或二进制数据块的字符串写入到文件中。
writelines()是针对列表的操作,接受一个字符串列表作为参数,将它们写入文件。

文件内移动

seek()可以在文件中移动文件指针到不同的位置,在打开文件后文件指针默认应当是指向文件最开始的。该方法也可以找到文件的结尾。
text()提供当前文件指针在文件中的位置,从文件起始算起,以字节为单位。

文件迭代

for eachLine in f:
	;

一行一行的访问文件,eachLine代表文本文件的一行,对于二进制格式文件的处理看来不适用。

文件对象方法

方法操作
file.close()关闭文件
file.fileno()返回文件的描述符(file descriptor, FD, 整型值)
file.flush()刷新文件的内部缓冲区
file.isatty()判断file是否是一个类tty设备
file.next()返回文件的下一行(类似于file.readline()),或在没有其他行时引发StopIteration异常
file.read(size=-1)从文件读取size个字节,当未给定size或给定负值的时候,读取剩余的所有字节,然后作为字符串返回
file.readline(size=-1)从文件读取并返回一行(包括行结束符),或返回最大size个字符
file.readlines(sizhint=0)读取文件的所有行并作为一个列表返回(包含所有的行结束符),如果给定sizhint且大于0,那么将返回总和大约为sizhint字节的行(大小由缓冲器容量的下一个值决定)(比如说缓冲器的大小只能为4K的倍数,如果sizhint为15K,则最后返回的可能是16K)
file.xreadlines()用于迭代,可以替换readlines()的一个更高效的方法
file.seek(off,whence=0)在文件中移动文件指针,从whence(0代表文件起始,1代表当前位置,2代表文件末尾)偏移off字节
file.tell()返回当前在文件中的位置
file.truncate(size=file.tell())截取文件到最大size字节,默认为当前文件位置
file.write(str)向文件写入字符串
file.writelines(seq)向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象

文件内建属性

属性描述
file.closed表示文件已经被关闭,否则为False
file.encoding文件所使用的编码
file.modeAccess文件打开时使用的访问模式
file.name文件名
file.newlines未读取到行分隔符时为None,只有一种行分隔符时为一个字符串,当文件有多种类型的行结束符时,则为一个包含所有当前所遇到的行结束符的列表
file.softspace为0表示在输出一数据后,要加上一个空格符,1表示不加。这个属性一般程序员用不着,由程序内部使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技塑未来-苏导

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值