下面是将文件的第二行与输入进行比较的代码。这仅在文件中没有其他内容时才有效,如何在文件中包含多行文本时更改代码以使其仍然有效。
name = input("Enter name: ")
with open("numbers") as f:
lines = f.readlines() # a list of all the lines
if lines[1] == name: # the second line (0 indexing)
答案 0 :(得分:0)
你写了if lines[1] == name: foo()
。要将其应用于所有行,请使用:
lines = f.readlines()
for line in lines:
if line.rstrip() == name:
foo()
rstrip()
删除末尾的空格,如换行符。
更紧凑的是,如果您正在处理每一行而不需要编制索引,您可以迭代文件而不是读取行返回的列表:
with open("numbers") as f:
for line in f:
if line.rstrip() == name:
foo()
答案 1 :(得分:0)
当您的文件只有2行时,第2行将是您所期望的,因此您的程序可以运行。
当您有两行以上时,第二行以换行符\n
结束。只需确保在比较之前摆脱最后一个字符。
if lines[1].rstrip("\n") == name:
会这样做。
感谢@Rawing