zltzlt 发表于 2019-11-2 20:14:40

实用干货:文件对象(_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')

1394116864 发表于 2019-11-3 14:06:13

zltzlt 发表于 2019-11-3 16:44:52

@henry2018 @一个账号 @_2_ 更新完毕{:5_95:}

@小甲鱼 申精{:10_298:}

_2_ 发表于 2019-11-3 17:11:44

zltzlt 发表于 2019-11-3 16:44
@henry2018 @一个账号 @_2_ 更新完毕

@小甲鱼 申精

没有必要,大部分小甲鱼在书中讲过了

zltzlt 发表于 2019-11-3 17:12:57

_2_ 发表于 2019-11-3 17:11
没有必要,大部分小甲鱼在书中讲过了

但有一些没讲过啊,而且这样方便查阅

_2_ 发表于 2019-11-3 17:45:45

zltzlt 发表于 2019-11-3 17:12
但有一些没讲过啊,而且这样方便查阅

好像没什么卵用......就是了

小甲鱼 发表于 2019-11-3 18:16:35

可以~

zltzlt 发表于 2020-1-7 18:29:18

@不二如是 有哪里需要改呢?

不二如是 发表于 2020-1-7 18:35:41

zltzlt 发表于 2020-1-7 18:29
@不二如是 有哪里需要改呢?

在官方原始代码基础上,建议加一些,跟鱼C相关的代码演示及截图

一个账号 发表于 2020-1-31 21:38:38

顶一下

一个账号 发表于 2020-2-5 21:36:15

写错了:

zltzlt 发表于 2020-2-5 22:01:10

一个账号 发表于 2020-2-5 21:36
写错了:

感谢指出~~

hwq8210yy 发表于 2022-5-9 16:33:58

怎么下载?
页: [1]
查看完整版本: 实用干货:文件对象(_io.TextIOWrapper)中文文档