Не удается получить результат от поиска csv файла в Python


Для задания я должен закодировать программу, которая может искать в текстовом файле академических статей с разделителями табуляции определенные значения, то есть искать автора в столбце "автор", а затем печатать всю строку. Вот код до сих пор...

import csv
import sys

#Assign File to "SearchFile"
SearchFile=raw_input(str("Enter the name of the file you want to search: "))

#open csv
reader = csv.reader(open(SearchFile, "rb"), delimiter="t")

#Search Request
search_request = raw_input(str("Search on author (A=)or journal/conference (J=), [Q = quit]: "))

#Author Search
if search_request.startswith("A="):
    for row in reader:
        if search_request in row[0]:
            print row
        else:
            print("Sorry, could not be found")

Я видел несколько подобных примеров на stackoverflow, но все еще не могу решить свою проблему. Я могу заставить его прочитать файл, но не могу получить результаты поиска? Я новичок в Python, так что если кто-то может помочь, это будет отлично!

Некоторые строки csv-файла:

AUTHOR(S)    YEAR    TITLE    JOURNAL/CONFERENCE
Accot;Zhai  2001    Scale effects in steering law tasks Proc. ACM CHI
Acredolo    1977    Developmental Changes in the Ability to Coordinate Perspectives of a Large-Scale Space  Developmental Psychology
2 3

2 ответа:

По крайней мере, одна из причин, почему это не работает, заключается в том, что вы забыли, что search_request имеет "A=" в нем. Понятно, что это не то, что вы имеете в виду: вы хотите искать row[0] для символов после "A=". Поэтому вам нужно сначала удалить" A= " из search_request...

if search_request.starts_with("A="):
    seach_request = search_request[2:]  # strip off the selector "A="
    for row in reader:
        if search_request in row[0]:
            print row
        else:
            print("Sorry, could not be found")
else:
  print("Ooops, your selection (%s) is not supported right now" % search_result[:2])

Я думаю, что строка [0] не имеет префикса "A=". Вероятно, вам следует вырезать префикс из строки search_request.

...
#Author Search 
if search_request.startswith("A="): 
    for row in reader: 
        if search_request[2:] in row[0]:
            print row
        else: 
            print("Sorry, could not be found")