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

时间:2014-08-17 18:04:39

标签: python file python-3.x text

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

文本文件如下所示:

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

如果我是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)

我确实在打印(行)后尝试逗号,但它没有用。 我猜我错过了一些只会打印线而不是额外的空白行的代码。

4 个答案:

答案 0 :(得分:4)

您应提供end=''print,以取消向输出添加等效\n的自动行为。

我还会删除计数逻辑并使用{​​{1}}来提取您想要的行,例如:

islice

如果您想使用计数方法,那么您可以从1开始使用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='') ,例如:

enumerate

答案 1 :(得分:3)

print在字符串的末尾添加\n\r,并且考虑到您已阅读的行已经在最后有一个新行,这就是行为。您可以改为使用:

print(line, end="")

希望这有帮助!

答案 2 :(得分:1)

你也可以使用" strip()"删除多余空格的方法。在你的情况下:
打印(line.strip())

或完成作业:
line = line.strip()
打印(线)

答案 3 :(得分:0)

如果要删除字符串的尾随新行,可以使用rstrip('\ n'):

print line.rstrip('\n')