Инструкция ELSE для файла CSV не работает

Я пытаюсь вписаться в ELSE заявление для переменной в CSV Файл.

CSV-файл:

abcd, qwerty, aoo9
Afjd, Wijfs, аааа
12as, 54as, oozz

Я попытался следующее:

string1 = raw_input('User input: ')
with open('FILE.csv', "rb") as csvfile:
        z = csv.reader(csvfile, delimiter=',')
        for row in z:
            if string1 in row[1]: 
                print 'A' 
            else:
                print 'B'
                sys.exit()

Однако независимо от того, находится ли ввод пользователя в row[1] или нет, он все равно будет печатать B ".

Я ожидаю, что если пользовательский ввод qwerty , wijfs , или же 54as как string1, которые все лежат в row[1] напечатаю A ', однако, если пользователь вводит что-то для string1, это не в row[1] напечатаю B '

Я также попробовал:

elif variable not in row [1]: #...

Но это тоже не работает.

Благодарю.

2 ответа

Ваш CSV-файл содержит пробелы. Ваша программа будет вести себя как положено, если вы введете " querty" вместо "querty",

Вы можете изменить файл CSV или использовать strip функция для удаления начальных и конечных пробелов row[1],

Или используйте skipinitialspace параметр csv.reader,;)

Очевидно, что либо variable или же row[1] не содержит то, что вы думаете, что оно содержит. Добавьте оператор печати следующим образом:

    for row in z:
        print '<{}> ?= <{}>'.format(variable, row[1]) # add this line.
        if variable in row[1]: 

чтобы увидеть, что находится в этих двух переменных (в том числе в начале или конце пробела). Скорее всего, они не будут содержать то, что вы думаете, они содержат.

Другие вопросы по тегам