Я пишу код для создания общего списка игроков из набора описаний. Имейте один файл CSV с описаниями каждой игры NFL в прошлом году, например «44-J.STARKS RIGHT GUARD TO GB 41 FOR 2 YARDS (31-K.CHANCELLOR, 50-K.WRIGHT)». или «3-R.WILSON PASS SHORT RIGHT TO 11-P.HARVIN RAN OB НА МОРЕ 29 НА 9 ЯРД». У меня также есть обновляющий список бега назад (и в будущем, другие позиции), который я добавляю вручную, если игрок появляется в режиме воспроизведения, но уже не входит в список бегущих назад. мой код выглядит как-Поиск двух файлов csv для сопоставления переменных с использованием Python
rbs=open('rbs.csv', 'rb+a') #open the running back file
with open('/Users/masongardner/Desktop/pbp-2014.csv', 'rb') as csvfile: #opens the list of descriptions
reader = csv.reader(csvfile, delimiter=',', quotechar='|')
reader.next() #skip the title row
for row in reader:
desc=row[14] #corresponds with the description of each play
#print desc
for line in rbs: #each line should be another running back in the running backs CSV
if re.findall(line[0], desc, re.I):
print 'found'
print line
print desc
elif re.findall('no play| KICKS | KNEEL | KNEELS | PUNT | PUNTS | Extra point |Field goal|Two-minute|END GAME|timeout|end of quarter|end quarter|no huddle', desc, re.I):
pass
elif re.findall('right guard|right end|right tackle|left guard|left tackle|left end|up the middle', desc,re.I):
print "did not find it"
print desc
rback=raw_input('running back:')
with open('rbs.csv','a') as rbfile:
rbwriter=csv.writer(rbfile, delimiter=' ', quotechar='|',quoting=csv.QUOTE_MINIMAL)
rbwriter.writerow([rback])
else:
print "did not find it"
print desc
rbs.close()
Как я только начинал с этим, я поставил один вход для файла "РБС как Eddy Лейси, который должен быть найден. Дело в том, что когда я запускаю свой код, я не получаю никакого вывода. Я возвращаю только статус выхода 0.
Я не понимаю, почему это так, поскольку есть тысячи строк, которые должны дать мне НЕКОТОРЫЕ выходные данные. Может кто-то, пожалуйста, помогите мне в том, что не так в моем процессе?
Сложение: Как она стоит на данный момент, мой файл rbs.csv отформатирован, как, например, когда я открываю его с TextEdit
27-E.LACY
24-F.GORE
и т. Д.
И когда я просматриваю одну из строк для описания игры, файл отформатирован как таковой: 2014090400,2014-09-04,1,13,32, GB, SEA, 1,10, 39,, 0,, 0, "(13:32) (НЕТ HUDDLE) 44-J. STARKS ПРАВИЛЬНО ОГРАНИЧИВАЕТСЯ к GB 41 ДЛЯ 2 ЯРД (31-K.CHANCELLOR, 50-KWRIGHT). ", 0 ,,, 2014,2," NO HUDDLE ", RUSH, 1,0,0,0, 0,0,0 ,, 0,0,0,0,0,0, "RIGHT GUARD", 39, СВОЯ, 0,, 0,, 0
Вы должны дать реальный отрывок из одного из файлов CSV, но для меня это выглядит так, что ваш кавычек, вероятно, является '' '(двойная кавычка), а не' ''. То, что ваш разделительный символ невозможно сказать без реальная часть файла. Als распечатывают вашу строку, поэтому вы видите, что на самом деле вы наступаете на линии, как вы ожидаете. – Anthon
Когда я запускаю команду печати, код действительно печатает весь документ описания. Если я печатаю переменную 'line' также во вложенном цикле, строки печатаются один раз для первой строки rbs ', но не для любой из следующих строк –
, что я хочу сказать, код проходит через каждый строка, но только запуск элементов после «для строки в rbs» для первой строки –