Python 3在.csv文件中查找多个单词

时间:2017-01-11 09:28:14

标签: python python-3.x csv

您好我正在创建一个故障排除程序,我有一个部分工作解决方案,如果用户键入单个单词问题,在csv中找到该单词,则输出正确的建议。然而问题是如果用户输入多个单词没有找到任何内容并且根本没有输出任何建议,则程序停止。

import csv
import webbrowser

print("Hello! Welcome to trouble shooter 2.0")

def menu():
    try:
        Phone = int(input("""What is your operating system?
    Please choose the corresponding number:
    1) iOS
    2) Android
    3) Other
    > """))

        if Phone == 1:
            print("Thank you iOS user")
        elif Phone == 2:
            print("Thank you Android user")
        elif Phone == 3:
            print("Thank you")
        else:
            print("please find out")
            exit()
    except ValueError:
        print("please enter a numerical input")
        menu()

menu()


task2 = open ("problem list.csv")
Problem = input ("""Please enter the issue you wish to resolve
>""")
KeyWords = Problem.split()
reader = csv.reader(task2, delimiter=',')

for row in reader:
    if Problem == row[0]:
            print(row[1])
    else:
        print("we do not have an answer for this")


helpful = input("""


Was this helpful?""").lower()
if helpful[0] == 'n':
    google = input("in this case, please input your issue, for a google   search: ")
    webbrowser.open_new_tab('http://www.google.com/search?btnG=1&q=%s'% google)

elif helpful[0] == 'y':
    print("""
You are welcome""")
    exit()

2 个答案:

答案 0 :(得分:0)

问题是如果问题==行[0]:,问题是拆分函数的返回值,这是一个列表。所以你应该检查列表中的每个值,这意味着你应该使用if row in Keywords :

我没有测试它,但理论上它应该可以工作!

答案 1 :(得分:0)

我想你忘了这个

KeyWords = Problem.split()

实际上,您可以使用KeyWords代替Problem,因为似乎row[0]是一个单词,而KeyWords的类型现在是list,所以为什么不试试这个:

    if row[0] in KeyWords:
            print(row[1])

尝试调试它,你会发现你的代码有什么问题。

希望这有帮助。