删除空行

Deleting blank lines

Python 问题: 我需要一些帮助来弄清楚为什么这段代码打印 3 行,它们之间有一个空行。我希望它打印以特定字母开头的 .txt 的每个联系人。 例如,如果 Z = A,它将打印:

阿丽亚娜

SSN:132664979

+1356974664

阿比盖尔

SSN: 2658978133

+5765613197

..等等所有以“A”开头的联系人。 我不知道如何删除每行之间的空白 spaces information.I 希望代码打印如下内容:

阿丽亚娜
SSN:132664979
+1356974664
阿比盖尔
SSN: 2658978133
+5765613197
...等等

我想澄清一下,.txt 数据之间没有任何空白 space。所以这是代码正在做的事情。

    Z=input("Enter the letter:")
    archive = open("agenda.txt", "r").readlines()
    print("List of people starting with that letter:")
    for i,line in enumerate(archive):
        if line.startswith(Z):
            print(archive[i])
            print(archive[i+1])
            print(archive[i+2])```



Thank you for your help.
print(archive[i].strip())
print(archive[i+1].strip())
print(archive[i+2].strip())

使用 .strip() 删除新行 (\n)

.readlines() 在每行末尾包含换行符 ('\n')。当您阅读文件时,我更喜欢 .strip() 这个。

with open('agenda.txt') as file:
    archive = [line.strip() for line in file.readlines()]

如果你使用.readlines()方法,每行总是以换行符(\n)结尾,这些字符在没有特别使用[=14=时被视为字符串而不被解释] 方法。

意味着换行符将显示为'\n'。

然而,当使用 print() 时,这些字符将被解释并显示为新行。因此空行。

最好的解决方案是替换这一行:

archive = open("agenda.txt", "r").readlines()

有了这个:

archive = open("agenda.txt", "r").read().splitlines()

.read() 方法 returns 一次所有行,.splitlines() 在换行符处拆分,它将 read() 的结果拆分为一个列表,每行作为一个元素。

而且所有的行都不会以\n结尾。