将输入与文件进行比较

时间:2017-10-15 18:18:57

标签: python

下面是将文件的第二行与输入进行比较的代码。这仅在文件中没有其他内容时才有效,如何在文件中包含多行文本时更改代码以使其仍然有效。

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)

2 个答案:

答案 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