实用干货:文件对象(_io.TextIOWrapper)中文文档
本帖最后由 zltzlt 于 2020-2-5 21:41 编辑这里是实用干货:文件对象(_io.TextIOWrapper)中文文档。
如果喜欢,不要忘记评分哦!{:10_281:}
创建一个 _io.TextIOWrapper 对象
创建一个 _io.TextIOWrapper 对象可以直接使用 open() 内置函数:
>>> a = open('demo.txt', 'r')
>>> type(a)
<class '_io.TextIOWrapper'>
close() 方法用于关闭文件。
语法格式:
close()
参数说明:
无参数。
返回值:
无。
注意:
[*]关闭文件后,对文件的任何操作都会触发 ValueError。
[*]此方法可以被调用多次,但只有第一次的调用才会起作用。
例子:
>>> a = open('demo.txt', 'w')
>>> a.close() # 关闭文件
>>> a.close() # 再次调用此函数虽然不会报错,但是无效
detach() 方法用于获取用二进制模式打开的同一个文件,一般不用这个方法。
语法格式:
detach()
参数说明:
无参数。
返回值:
_io.BufferedWriter 或 _io.BufferedReader 对象,取决于打开文件的模式是 r 还是 w。
注意:
此方法在 Python 3.1 添加。
例子:
>>> f = open("E:/demo.txt", 'w')
>>> print(f.detach())
<_io.BufferedWriter name='E:/demo.txt'>
>>> f = open('E:/demo.txt', 'r')
>>> f.detach()
<_io.BufferedReader name='E:/demo.txt'>
fileno() 方法用于获取文件流的底层文件描述符(整数)。
语法格式:
fileno()
参数说明:
无参数。
返回值:
文件流的底层文件描述符。
例子:
>>> f = open('E:/demo.txt')
>>> f.fileno()
4
flush() 方法用于刷新文件流的写入缓冲区,也就是将用 write() 写入的内容保存到文件里。
语法格式:
flush()
参数说明:
无参数。
返回值:
无。
注意:
此方法对于打开模式不是 w 的文件无效。
例子:
>>> f = open('E:/demo.txt', 'w')
>>> f.flush() # 刷新缓冲区
isatty() 方法用于判断文件流是否是交互式的。
语法格式:
isatty()
参数说明:
无参数。
返回值:
如果文件流是交互式的(即连接到终端 / tty 设备),则返回 True,否则返回 False。
例子:
>>> f = open('E:/demo.txt')
>>> f.isatty()
False
read() 方法用于读取文件的内容。
语法格式:
read(size=-1)
参数说明:
参数说明
size读取文件字符的长度(注意不是字节的长度),如果为负数则读取到文件末尾。
返回值:
字符串,读取到的文件的内容。
例子:
>>> f = open('E:/demo.txt')
>>> print(f.read()) # 读取到文件尾
I love
Fishc
readable() 方法用于判断文件是否可以从中读取内容(即打开文件的模式是否是 r)。
语法格式:
readable()
参数说明:
无参数。
返回值:
如果文件可以从中读取内容则返回 True,否则返回 False。
例子:
>>> f = open('E:/demo.txt')
>>> f.readable() # 返回 True 代表可读取
True
readline() 方法用于从文件中读取并返回一行(逐行读取)。
语法格式:
readline(size=-1)
参数说明:
参数说明
size读取文件一行字节的长度,如果为负数则读取到那一行的末尾。
返回值:
字符串,读取到的文件一行的内容。
例子:
>>> f = open('E:/demo.txt')
>>> f.readline()
'I love\n'
>>> f.readline()
'Fishc'
>>> f.readline() # 文件没有行可以读取,返回空字符串
''
readlines() 方法用于读取文件的所有行。
语法格式:
readlines(hint=-1)
参数说明:
参数说明
hintint,读取文件所有行的字符最大长度,如果已经读取行的总字符长度超过 hint 则不再读取行。
返回值:
列表,列表中的每个元素是一行。
例子:
>>> f = open('E:/demo.txt')
>>> f.readlines() # 返回行列表
['I love\n', 'Fishc']
reconfigure() 方法用于重新设置打开文件时的参数。
语法格式:
reconfigure(*[, encoding][, errors][, newline][, line_buffering][, write_through])
参数说明:
参数说明
encoding由于这些参数与 open() 的参数相同,所以不再赘述。
errors
newline
line_buffering
write_through
返回值:
无。
例子:
>>> f = open('E:/demo.txt')
>>> f.reconfigure(newline='\r') # 重设文件的换行符
seek() 方法用于移动文件的指针。
语法格式:
seek(offset, whence=0)
参数说明:
参数说明
offset移动偏移量(按字符计数),具体如何移动见 whence 参数。
whence移动文件指针的方式。它有以下取值:
[*]0 —— 从文件的开头开始移动指定偏移量。
[*]1 —— 移动到当前位置,在这种情况下 offset 必须为 0。
[*]2 —— 移动到文件的结尾,在这种情况下 offset 必须为 0。
返回值:
移动后指针的位置。
例子:
>>> f = open('E:/demo.txt')
>>> f.seek(3) # 移动到第 4 个字符的位置
3
>>> f.read()
'ove\nFishc'
>>> f.seek(0) # 移动到文件开头
0
>>> f.seek(0, 1) # 移动到当前位置
0
>>> f.seek(0, 2) # 移动到文件末尾
13
seekable() 函数用于判断文件是否支持指针移动。
语法格式:
seekable()
参数说明:
无参数。
返回值:
如果文件支持指针移动则返回 True,反之返回 False。
注意:
如果此方法返回 False,则 seek()、tell() 和 truncate() 方法都会抛出 OSError。
例子:
>>> f = open('E:/demo.txt')
>>> f.seekable()
True
tell() 用于获取文件指针的位置。
语法格式:
tell()
参数说明:
无参数。
返回值:
整数,文件指针的位置。
例子:
>>> f = open('E:/demo.txt')
>>> f.seek(3)
3
>>> f.tell()
3
truncate() 方法用于将文件的大小调整为以字节为单位的指定大小。
语法格式:
truncate(size=None)
参数说明:
参数说明
size指定的字节数。为 None 表示 0。
返回值:
size 参数。
例子:
truncate() 方法如在不是在以 w 模式打开的文件使用,会抛出 OSError。
例子:
>>> f = open('E:/demo.txt', 'w')
>>> f.truncate() # 相当于清空文件
0
writable() 函数用于判断文件是否可以写入文本。
语法格式:
writable()
参数说明:
无参数。
返回值:
如果文件是可以写入内容的则返回 True,反之返回 False。
例子:
>>> f = open('E:/demo.txt')
>>> f.writable() # 文件不是以 w 模式打开,所以不可写入内容
False
write() 方法用于向文件写入内容。
语法格式:
write(s)
参数说明:
参数说明
s写入的字符串。
返回值:
写入的字符串的长度。
例子:
>>> f = open('E:/demo.txt', 'w')
>>> f.write('123') # 向文件写入内容
3
writelines() 方法用于迭代写入文件。
语法格式:
writelines(lines)
参数说明:
参数说明
lines迭代写入文件的字符串列表。
返回值:
无。
例子:
>>> f = open('E:/demo.txt', 'w')
>>> f.writelines(['1', '2', '3\n']) # 相当于 f.write('123\n') 顶 @henry2018 @一个账号 @_2_ 更新完毕{:5_95:}
@小甲鱼 申精{:10_298:} zltzlt 发表于 2019-11-3 16:44
@henry2018 @一个账号 @_2_ 更新完毕
@小甲鱼 申精
没有必要,大部分小甲鱼在书中讲过了 _2_ 发表于 2019-11-3 17:11
没有必要,大部分小甲鱼在书中讲过了
但有一些没讲过啊,而且这样方便查阅 zltzlt 发表于 2019-11-3 17:12
但有一些没讲过啊,而且这样方便查阅
好像没什么卵用......就是了 可以~ @不二如是 有哪里需要改呢? zltzlt 发表于 2020-1-7 18:29
@不二如是 有哪里需要改呢?
在官方原始代码基础上,建议加一些,跟鱼C相关的代码演示及截图 顶一下 写错了:
一个账号 发表于 2020-2-5 21:36
写错了:
感谢指出~~ 怎么下载?
页:
[1]