Skip to main content
 首页 » 编程设计

Python 程序在读取文本文件时打印一个额外的空行

2025年05月04日13落叶无声

我正在使用 python 3.3。例如,我有一个包含三行文本的文本文件。我想选择一个数字,它会显示该行号的内容。出于某种原因,它打印了我想要的行,并在其下方打印了一个空行。

文本文件如下所示:

AAPL,Apple,700 
P,Pandora,32 
MW,Men's Warehouse,54.32 

如果 i 为 2,我得到的解释器输出:

>> 
P,Pandora,32 
 
>> 

代码在这里:

line_number = int(input('Enter the line number: ')) 
with open('C:/Python33/myprogramtests/filewrite1.txt') as f: 
    i = 1 
    for line in f: 
        if i == line_number: 
            break 
        i += 1 
    print (line) 

我确实在 print (line) 之后尝试了一个逗号,但它没有用。 我猜我遗漏了一些只打印该行而不是额外空白行的代码。

请您参考如下方法:

您应该为 print 提供一个 end='' 来抑制将 \n 的等价物添加到输出的自动行为。

我还会删除计数逻辑并使用 islice 提取您想要的行,例如:

from itertools import islice 
 
line_number = int(input('Enter the line number: ')) 
with open('yourfile') as fin: 
    print(next(islice(fin, line_number - 1, line_number), ''), end='') 

如果你想使用计数方法,那么你可以使用从 1 开始的 enumerate,例如:

for idx, line in enumerate(fin, start=1): 
    if idx == line_number: 
        print(line, end='') 
        break