簡體   English   中英

讀取文本文件時,Python程序會額外打印一行空行

[英]Python program prints an extra empty line when reading a text file

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

我在打印(行)后確實嘗試了逗號,但是沒有用。 我猜想我缺少一些只打印該行而不是多余的空白行的代碼。

您應該提供一個end=''print以禁止在輸出中加上\\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

print在字符串的末尾添加\\n\\r ,並且考慮到您已閱讀的行的末尾已經有新行,這就是行為。 您可以改用:

print(line, end="")

希望這可以幫助!

您也可以使用“ strip()”方法刪除多余的空格。 在您的情況下:
打印(line.strip())

或完成一項作業:
行= line.strip()
打印(行)

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

print line.rstrip('\n')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM