删除空行

时间:2021-06-15 13:41:59

标签: python count txt

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

阿丽亚娜

社会保障号:132664979

+1356974664

阿比盖尔

社会保障号:2658978133

+5765613197

...等等,所有联系人都以“A”开头。 我不知道如何删除包含信息的每行之间的空格。我希望代码打印如下内容:

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

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

    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.

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

print(archive[i].strip())
print(archive[i+1].strip())
print(archive[i+2].strip())

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

答案 2 :(得分:1)

如果使用 .readlines() 方法,行将始终以换行符 (\n) 结束,这些字符被视为字符串,在不特别使用 print() 方法时不会被解释.

表示换行将显示为“\n”。

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

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

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

有了这个:

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

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

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