【问题标题】:Confusing way readline() is operating令人困惑的 readline() 运行方式
【发布时间】:2019-08-18 16:59:39
【问题描述】:

我对 infile.readline() 函数在我的代码中的运行方式感到困惑。

注意:正在使用 Python 解释器 v2.7.15(64 位)。

infile = open(r'C:\Users\pritish\Desktop\test_file_for_py.txt', 'r')
print infile.read(5)
print infile.read(5)
print infile.readline(2)

test_file_for_py.txt 包含这些行:

This is line 1
This is line 2
This is line 3
This is line 4
This is line 5
This is line 6
This is line 7
This is line 8

在上面的 #TEST CODE 1 中,print infile.readline(2) 给出了输出 ne,这与预期的一样:

>>> infile = open(r'C:\Users\pritish\Desktop\test_file_for_py.txt', 'r')
>>> print infile.read(5)
This
>>> print infile.read(5)
is li
>>> print infile.readline(2)
ne
>>>

现在要注意了,无论我将哪个值(大于 4)作为参数传递给 infile.readline(),它都会给出与下面相同的结果。

>>> infile = open(r'C:\Users\pritish\Desktop\test_file_for_py.txt', 'r')
>>> print infile.read(5)
This
>>> print infile.read(5)
is li
>>> print infile.readline(5) # NOTE BELOW output
ne 1

>>>
>>> infile = open(r'C:\Users\pritish\Desktop\test_file_for_py.txt', 'r')
>>> print infile.read(5)
This
>>> print infile.read(5)
is li
>>> print infile.readline(8) #value is changed to 8 now , but still o/p same as previous(as like 5)
ne 1

>>>

谁能解释一下,为什么 infile.readline() 没有从下一行返回字符,即使我将 infile.readline() 参数更改为任何值 (>5)?

【问题讨论】:

  • readline 在遇到\n 字符时停止。 readline,顾名思义,就是应该读取当前行。

标签: python python-3.x file-handling readline


【解决方案1】:

readline 在到达换行符时停止。可选的size 参数指定最多读取多少个字符。如果它在读取size 字符之前遇到换行符,它无论如何都会停止,并且size 参数变得无关紧要。

the documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2022-01-17
    • 2018-02-26
    • 1970-01-01
    相关资源
    最近更新 更多