在Python3中,如果搜索项位于CSV表中,则显示true

时间:2017-05-18 04:22:01

标签: database python-3.x csv input pycharm

我希望用户能够搜索特定的术语,如果它在数据库中,则会给出一条消息,说明它在数据库中。

这是我到目前为止所做的代码,它运行没有错误,但是当我输入搜索词时,它总是说“我们很抱歉,但这似乎不在我们的系统中”,它总是说这个3次。我使用Pycharm作为我的IDE,但我不认为这会产生影响。

我是Python的新手,所以如果我错过了一些简单的话,请耐心等待我。)

    import csv

    uIn = input("Please enter a search term: ")

    with open('database.csv', 'r') as uFile:
        fileReader = csv.reader(uFile, delimiter=',')
        for row in fileReader:
            if uIn == row[1]: #True
                print (uIn + "is in file")
            else: #False
                print("We are sorry, but that does not seem to be in our system")

----------------------------------------------- - - - - - -编辑 - - - - - - - - - - - - - - - - - - - --------------------------

谢谢你@Rahul Bhatnagar的回答;它告诉我,我需要在。中切换==。

这确实回答了问题的一部分,并且我已经找到了其他部分,else语句打印了每个没有uIn内部的行。所以说uIn在第三行,脚本会打印两次#False语句,#True语句打印一次。这很好,但是如果uIn在第50行或第100行,则会打印49或99个#false语句。

我现在说我的问题大约有50%是固定的,未修复的部分只是打印1 #true或1 #false语句(如果它在文件中)。

1 个答案:

答案 0 :(得分:0)

import csv

def search(uIn):
    found = false;
    with open('database.csv', 'r') as uFile:
        fileReader = csv.reader(uFile, delimiter=',')
        for row in fileReader:
            if uIn in row: #True
                found = true;
    if(found):
        print ("Found the string in file!")
    else:
        print("We are sorry, but that does not seem to be in our system")


uIn = raw_input("ST: ")
search(uIn)

我的database.csv文件是:

search,terms,go,into,this,file,in,this,format

在所有情况下,你都试图在行的第1位找到uIn,这不是那种情况。