python readline返回什么类型_在Python中到达文件末尾时readline返回什么值?

可以使用经典循环

file_in = open('suppliers.txt', 'r')

line = file_in.readline()

while line:

line = file_in.readline()

在Python中逐行读取文件。

但是当循环退出时,'line'有什么价值? Python 3文档只读:

readline(size=-1)

Read and return one line from the stream. If size is specified, at

most size bytes will be read.

The line terminator is always b'

' for binary files; for text files,

the newline argument to open() can be used to select the line

terminator(s) recognized.

编辑:

在我的Python(3.6.1)版本中,如果以二进制模式打开文件,help(file_in.readline)会给出

readline(size=-1, /) method of _io.BufferedReader instance

Read and return a line from the stream.

If size is specified, at most size bytes will be read.

The line terminator is always b'

' for binary files; for text

files, the newlines argument to open can be used to select the line

terminator(s) recognized.

这与上面引用的文档完全相同。 但是,正如史蒂夫巴恩斯所指出的,如果你以文本模式打开文件,你会得到一个有用的评论。 (哎呀!我的复制粘贴错误)

以前的文档更容易理解。

TextIOBase文件readline在EOF上返回一个空字符串; 以上摘录来自IOBase中的描述。

在python控制台中打开一个文件,然后在其readline方法上调用help会告诉你:

>>> f = open('temp.txt', 'w')

>>> help(f.readline)

Help on built-in function readline:

readline(size=-1, /) method of _io.TextIOWrapper instance

Read until newline or EOF.

Returns an empty string if EOF is hit immediately.

每个读取线从当前点开始对文件的其余部分进行操作,因此最终将达到EOF。

请注意,如果以二进制模式打开文件,使用rb而不是r,那么将获得对象而不是对象 - 然后帮助消息不同:

Help on built-in function readline:

readline(size=-1, /) method of _io.BufferedReader instance

Read and return a line from the stream.

If size is specified, at most size bytes will be read.

The line terminator is always b'

' for binary files; for text

files, the newlines argument to open can be used to select the line

terminator(s) recognized.

当此方法到达EOF时,它将返回一个空字节数组,b''而不是空字符串。

请注意,以上所有内容都是在Win10上使用python 3.6进行测试的。

请参阅我的编辑 - Python的3.6.1文档不再以这种方式工作。

@JosiahYoder看到我的编辑。

从教程:https://docs.python.org/3.6/tutorial/inputoutput.html#methods-of-file-objects

f.readline() reads a single line from the file; a newline character

() is left at the end of the string, and is only omitted on the

last line of the file if the file doesn’t end in a newline. This makes

the return value unambiguous; if f.readline() returns an empty

string, the end of the file has been reached, while a blank line is

represented by '

', a string containing only a single newline.

从(Python 3)控制台中的问题运行代码片段显示它返回空字符串,或者如果以二进制模式打开文件则返回空的Bytes对象。

这是在某处记录的吗?也许这是一个广泛的python标准?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值