下面是将文件第二行与输入进行比较的代码。仅当文件中没有其他内容时才有效,当文件中有许多行文本时,我如何更改代码以使其仍然有效。
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)
发布于 2017-10-15 18:25:40
你写了if lines[1] == name: foo()
。要将其应用于所有行,请使用:
lines = f.readlines()
for line in lines:
if line.rstrip() == name:
foo()
rstrip()
删除了末尾的空格,如换行符。
更简洁地说,如果您正在处理每一行并且不需要索引,那么您可以遍历文件而不是readline返回的列表:
with open("numbers") as f:
for line in f:
if line.rstrip() == name:
foo()
发布于 2017-10-15 18:40:22
当你的文件只有2行时,第二行就是你所期望的,这样你的程序就可以工作了。
当超过2行时,第二行将以新行字符\n
结束。在进行比较之前,请确保去掉最后一个字符。
if lines[1].rstrip("\n") == name:
就可以了。
感谢@Rawing
https://stackoverflow.com/questions/46758445
复制相似问题