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.
答案 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
结尾。