我正在使用 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
