我正在尝试读取文本文件并返回文本文件的内容。文本文件包含一个矩阵。当我用文件运行我的代码时,它只打印第一行。我的代码看起来正确,我在网上搜索,似乎无法找到问题。
代码是:
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()
答案 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]