readline()只读取第一行

时间:2017-12-30 10:31:31

标签: python

我尝试在文件中读取多行,但当我将readline()方法分配给变量时,它似乎无法正常工作。它不断打印第一行。当我不将它分配给变量时,它似乎才有效。有什么想法吗?

我使用的是Python 3.6.2。这是我的代码:

# This is it not working ( I omitted the 'gradesfile_path' variable)

gradesfile = open(gradesfile_path,'r')
readgrades = gradesfile.readline()

print(readgrades)
print(readgrades)

# This is working when I don't call the variable

print(gradesfile.readline())
print(gradesfile.readline())
print(gradesfile.readline())

3 个答案:

答案 0 :(得分:1)

readline()读取一行 - open()返回的迭代器上下文中的 next 行。并且您将行读取指定为变量readgrades,它将始终包含该行。

也许您打算将方法分配给变量并调用该变量:

readgrades = gradesfile.readline  ##Note the absence of call

然后你可以这样做:

readgrades()

答案 1 :(得分:1)

当您将gradesfile.readline()分配给变量时,实际上是在读取一行并将该行存储到变量

答案 2 :(得分:0)

readline()假设要逐行读取整个文件,所以我相信每次需要读取一行时都需要继续调用它,如果你不限制使用readline(),然后您的目标可以通过以下方式实现:

  

read(): - 将立即读取整个文件

     

readlines(): - 将读取整个文件并将其导入python列表

with open('file_name', 'r') as file_obj:
    print file_obj.readlines()

with open('file_name', 'r') as file_obj:
    some_var = file_obj.readlines()
    print some_var

with open('file_name', 'r') as file_obj:
    print file_obj.read()

with open('file_name', 'r') as file_obj:
    some_var = file_obj.read()
    print some_var
相关问题