命令只读取文本文件的第一行

时间:2017-11-14 12:13:48

标签: python

我必须制作一个程序,其中一个功能是从文本文件中检索用户名和结果。 (全部在同一条线上) 出于某种原因,当我运行它时,只打印出第一行。为什么是这样 ?此外,这只发生在我尝试在学校运行程序(作业的一部分)时,它会在家里的笔记本电脑上打印所需的一切。 (Python版本也相同)

这是我的代码:

def results():
       username = input("Enter username :")
       for line in open("resultsfile.txt","r"):
             if username in line:
                  print (line)
             elif username not in line:
                   ("No such user")

此外,这是文本文件的样子(没有项目符号点):

  • tud16 CS Easy 2points
  • ser23 CH Med 4points
  • tud16 CS Hard 1points

2 个答案:

答案 0 :(得分:0)

def results():
    username = input("Enter username :")
    for line in open("resultsfile.txt","r"):
        if username in line:
            print (line)
        else:
            print("No such user")
results()

答案 1 :(得分:0)

您正在对文件进行迭代,但是您为每个与用户名不匹配的行打印No such user

如果文件中的某行包含用户名,则应该在循环后评估 。要实现这一点,您可以引入一个布尔值(found)来指示是否找到了用户:

def results():
   found = False
   username = input("Enter username :")
   for line in open("resultsfile.txt","r"):
       if username in line:
           print (line)
           found = True
   if not found:
       print("No such user")