我正在使用Python类编写代码,并尝试使用.txt
命令从外部创建的readline
文件中读取。我的代码如下(删除了注释):
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()
我希望代码逐行打印出整个文件,但它目前只打印出前五行。为什么循环不像我预期的那样工作?
此外,如果您将readline
的所有实例更改为read
,脚本将输出整个文件,然后输出大量空白区域。
答案 0 :(得分:3)
这一行:
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