Python循环只解析前五行文本Fi

2024-09-27 04:25:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用Python类编写代码,并试图使用readline命令从外部创建的.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()

我希望代码逐行打印出整个文件,但它目前只打印前五行。为什么循环没有像我预期的那样工作?在

另外,如果您将readline的所有实例更改为read,脚本将输出整个文件,然后输出大量空白。在


Tags: and文件the代码name命令txtinput
1条回答
网友
1楼 · 发布于 2024-09-27 04:25:16

这条线:

for line in fileline:

正在循环使用fileline的字符,该字符包含文件的第一行。所以如果第一行有5个字符,这个循环将执行5次。在

然后在循环内部,打印这一行,然后将下一行读入fileline变量。这对循环没有影响,循环仍在迭代第一行中的字符。在

要使程序有意打印前5行,可以执行以下操作:

^{pr2}$

或者您可以迭代file,它会自动读取行,并使用单独的计数器变量

i = 0
for line in file:
    print(line.rtrim('\n'))
    i += 1
    if i == 5:
        break

相关问题 更多 >

    热门问题