Существует много проблем с кодом.
- Вы должны использовать уже импортированную библиотеку
csv
, не разделяя ее запятыми ,
. - Ваше утверждение
if
действительно не соответствует ожиданиям.
Вы должны сделать что-то похожее на следующее:
import csv # Use it!
Сохранить слово как переменную:
word = input("Enter any word: ").casefold()
Надеюсь, у вашего CSV есть заголовки ... используйте csv.DictReader
, если это так:
reader = csv.DictReader(open('billboard_songs.csv', 'r'))
Перебирайте каждую песню в CSV ... с line_strip[1]
, Похоже, что ваша песня лирика во втором поле. Так что я через все это. Вам также следует установить переменную для хранения количества песен, содержащих слово на этом этапе:
word_count = 0
for lyrics in reader['song_lyrics']: # replace 'song_lyrics' with your CSV header for the field with song lyrics
# Check the word is present
Сначала выполнить итерацию по всему CSV, перед выводом на печать.
if word in lyrics:
word_count += 1
Один раз что завершает, вы можете использовать оператор if
/ else
для печати любого желаемого результата:
if word_count == 0:
print('No songs were found to contain the words: {}'.format(word))
else:
# at least one set of lyrics had the word!
print('{} song(s) were found to contain {} in this data set'.format(word_count, word))
Или вместо for l oop и всего остального ниже reader
, вы можете используйте sum
следующим образом:
word_count = sum([word in lyrics for lyrics in reader['song_lyrics'])
Тогда вы можете просто использовать обобщенный оператор c print
:
print('There were {} songs that contained the word: {}'.format(word_count, word))