Не удается получить результат от поиска 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 ответа:
По крайней мере, одна из причин, почему это не работает, заключается в том, что вы забыли, что 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])