Python 循环仅解析文本文件的前五行
Python Loop Only Parses First Five Lines of Text File
我正在尝试使用 readline
函数在 Python 中逐行读取和打印 .txt
文件。下面的代码旨在逐行打印出整个文本文件,但截至目前,它只打印出文本文件的前五行。
filename = input("Enter the name and extension of the file you want to open.")
file = open(filename, "r")
fileline = file.readline()
for line in fileline:
fileline = fileline.rstrip("\n")
print(fileline)
fileline = file.readline()
file.close()
我希望代码逐行打印出整个文件,但它目前只打印出前五行。代码中的错误是什么?
这一行:
for line in fileline:
循环遍历 fileline
的字符,其中包含文件的第一行。所以如果第一行有5个字符,这个循环会执行5次。
然后在循环内,打印该行,然后将下一行读入 fileline
变量。这对循环没有影响,它仍在迭代第一行中的字符。
要让程序有意打印前 5 行,您可以这样做:
for i in range(5):
fileline = file.readline()
if (fileline == ''): #end of file reached
break
print(fileline.rtrim('\n'))
或者您可以遍历 file
,它会自动读取行,并使用单独的计数器变量
i = 0
for line in file:
print(line.rtrim('\n'))
i += 1
if i == 5:
break
我正在尝试使用 readline
函数在 Python 中逐行读取和打印 .txt
文件。下面的代码旨在逐行打印出整个文本文件,但截至目前,它只打印出文本文件的前五行。
filename = input("Enter the name and extension of the file you want to open.")
file = open(filename, "r")
fileline = file.readline()
for line in fileline:
fileline = fileline.rstrip("\n")
print(fileline)
fileline = file.readline()
file.close()
我希望代码逐行打印出整个文件,但它目前只打印出前五行。代码中的错误是什么?
这一行:
for line in fileline:
循环遍历 fileline
的字符,其中包含文件的第一行。所以如果第一行有5个字符,这个循环会执行5次。
然后在循环内,打印该行,然后将下一行读入 fileline
变量。这对循环没有影响,它仍在迭代第一行中的字符。
要让程序有意打印前 5 行,您可以这样做:
for i in range(5):
fileline = file.readline()
if (fileline == ''): #end of file reached
break
print(fileline.rtrim('\n'))
或者您可以遍历 file
,它会自动读取行,并使用单独的计数器变量
i = 0
for line in file:
print(line.rtrim('\n'))
i += 1
if i == 5:
break