方法 | 描述 |
---|---|
seek() | 将当前读写位置移动到指定位置 |
tell() | 返回当前读写位置 |
readline() | 读取一行并返回它 |
readlines() | 读取所有行 |
writelines() | 写入一个序列,但没有换行符,需自己添加 |
close() | 关闭文件 |
fileinput() | 实现延迟迭代 |
值 | 描 述 |
---|---|
‘r’ | 读取模式(默认值) |
‘w’ | 写入模式 |
‘x’ | 独占写入模式 |
‘a’ | 附加模式 |
‘b’ | 二进制模式(与其他模式结合使用) |
‘t’ | 文本模式(默认值,与其他模式结合使用) |
‘+’ | 读写模式(与其他模式结合使用) |
显式地指定读取模式的效果与根本不指定模式相同。写入模式让你能够写入文件,并在文件 不存在时创建它。独占写入模式更进一步,在文件已存在时引发FileExistsError异常。在写入模 式下打开文件时,既有内容将被删除(截断),并从文件开头处开始写入;如果要在既有文件末 尾继续写入,可使用附加模式。’+'可与其他任何模式结合起来使用,表示既可读取也可写入
使用:
>>>f = open('somefile.txt','w') #提供的字符串将写入到既有内容的后面
>>>f.write('hello, ')
7
>>>f.write('world')
6
>>>f.close
>>>f = open('somefile.txt','r')
>>>f.read(4) #需告诉流你要读取多少个字符,不指定参数则输出所有
'hell'
>>>f.read()
'o,world'
分流写入文件
with open(filePath,'wb') as fp:
for info in f.chunks():
fp.write(info)
seek: #将当前位置移到指定地方
>>> f = open(r'C:\text\somefile.txt', 'w')
>>> f.write('01234567890123456789')
20
>>> f.seek(5)
5
>>> f.write('Hello, World!')
13
>>> f.close()
>>> f = open(r'C:\text\somefile.txt')
>>> f.read()
'01234Hello, World!89'
tell(): #返回当前位于文件的什么位置,如下例所示:
>>> f = open(r'C:\text\somefile.txt')
>>> f.read(3)
'012'
>>> f.read(2)
'34'
>>> f.tell()
5
readline(): #输出行
>>>some_file.readline()
'hello,world'
>>>some_file.readline(5)
'hello'
fileinput(): #模块fileinput会负责打开文件,你只需给它提供一个文件名即可
import fileinput
for line in fileinput.input(filename)
print(line)
fileinput.input() #返回能够用于for循环遍历的对象,相当于文件的readlines
fileinput.filename() #返回当前文件的名称
fileinput.lineno() #返回当前已经读取的行的数量(或者序号)
fileinput.filelineno() #返回当前读取的行的行号
fileinput.isfirstline() #检查当前行是否是文件的第一行
fileinput.isstdin() #判断最后一行是否从stdin中读取
fileinput.close() #关闭队列