从文本文件python中读取数字

时间:2014-10-18 02:59:50

标签: python

我正在尝试读取文本文件并返回文本文件的内容。文本文件包含一个矩阵。当我用文件运行我的代码时,它只打印第一行。我的代码看起来正确,我在网上搜索,似乎无法找到问题。

代码是:

def main():
    matrix = "matrix1.txt"
    print(readMatrix(matrix))


def readMatrix(matrix):
    matrixFile = open(matrix, "r")
    line = matrixFile.readline()
    while line != "":
        return line
        line = matrixFile.readline()
    matrixFile.close()

main()

3 个答案:

答案 0 :(得分:1)

while line != "":
    return line # function ends

也许你的意思是

while line != "":
    print line

答案 1 :(得分:1)

return返回将其传递给调用者的值并结束函数调用。如果要打印每一行,请输入print语句而不是return。

答案 2 :(得分:0)

您滥用return声明。当函数命中return时,控件返回调用者并且不返回函数。因此,您的函数将执行的最多操作是读取一行并将其返回,或者如果第一行为空则关闭文件。

Python中的文件有一个内置的迭代器,可以为你提供文件中的每一行,如下所示:

with open(path) as f:
    for line in f:
        [do something]

请注意使用with语句。退出块时会自动关闭文件,这使得它成为处理读/写文件的首选方式。

所以你想做的事情可能就像

with open(path) as f:
    for line in f:
        if not line: # Equivalent to if line == ''
            return
        else: # This else is actually redundant, but here so the flow is clear
            [do something]