[Language]File Input and Output

Posted 苏导

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Language]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表示不加。这个属性一般程序员用不着,由程序内部使用

以上是关于[Language]File Input and Output的主要内容,如果未能解决你的问题,请参考以下文章

Java Language and Virtual Machine Specifications

Java Language and Virtual Machine Specifications

RNN and Language modeling in TensorFlow

The basic introduction to MIX language and machine

文献阅读:Image as a Foreign Language: BEIT Pretraining for All Vision and Vision-Language Tasks

论文阅读总结:UniLM(Unified Language Model Pre-training for Natural Language Understanding and Generation)(