2017-04-27 102 views
0

我试图从文本文件中搜索学生ID,并在找到ID时显示该行。从文本文件中搜索ID

下面是代码:

sid = input ('\nPlease enter the student ID you want to search: ') 
     found = False 
     for line in student_file: 
      line = line.rstrip() 
      if sid == line[0]: 
       found = True 
       print (line) 
       print('\n') 
     if found == False: 
      print ("No student record under this ID.") 

该文本文件包含学生ID,名称和不同主体

1235  abc  0.0  0.0  0.0  0.0  0.0    

1111  def  19.0  20.0  30.0 20.3 12.3 

1  ghi  100.0 100.0 100.0 100.0 100.0 

5  jkl  100.0 100.0 100.0 100.0 100.0   

这里的标记如果

  • 输入SID = 1,则它显示了带ID的学生的详细信息1235,1111,1
  • i NPUT是1235,则显示
  • 输入5“这个ID在任何学生记录”,那么它显示ID学生信息= 5

所有我想要做的是显示学生记录为匹配的Id。我不知道哪里出了问题。

+0

'line [0]'是行中的第一个**字符**,而不是第一个*字符* ...尝试查看'line.split()'。 – jonrsharpe

回答

0

而不是使用line[0]这是您需要检查第一个单词的第一个字符。这是因为sid可以是多个字符。

您可以通过在第一个空格处拆分字符串然后使用[0]选择第一个段来完成此操作;

if (line.split(" ")[0] == sid): 

或者,你可以做;

if (sid in line.split(" ")): 
+0

我明白了。非常感谢 – Naksha