Python - 在CSV中查找关键字

时间:2015-12-03 21:14:13

标签: python csv

好的,基本上,我有这个项目来为电子设备创建故障排除程序。它询问你有哪些设备,例如手机,然后要求制作,型号等等。

然后我想让程序问'问题是什么',这很好,但是我希望在一列中有一个包含问题的CSV文件,以及下一栏中的解决方案。

所以从用户输入的例如说“我的手机不会充电”我希望它搜索CSV文件,例如“充电”或“不充电”,然后打印出解决方案。

我该怎么做呢?我一直坐在这里思考一段时间,但我不知道。

如果你们有任何其他建议,请提供。

2 个答案:

答案 0 :(得分:1)

所以你有关键词,问题和解决方案。

通常,一个问题可以,并且会有多种解决方案。

所以基本上,如果你使用csv,这意味着你将有一个列'解决方案'与几个相同的解决方案。 哪个在维护方面不是很好(假设你在解决方案中犯了一个拼写错误,你如何在任何地方改变它?)

将csv导入关系数据库(例如MySQL和使用MySQL Workbench)非常容易。 使用SQL可以让你使用强大的功能,比使用csv更快,总体上允许你以后使用ORM来制作像数据库中插入django一样的好东西。

Tables : 
    - word : id_word, word
    - problem : id_problem, problem
    - solution : id_solution, solution
    - problem_solution : id_problem, id_solution (a problem can have multiple solutions).
    - word_problem : id_word, id_problem (a word can be found in multiple problems).

Logic :
    ask user for problem.
    split problem on space (" ") to get words.
    for every word, ask your db for related problems.
    show your user distinct related problems (ordering by the most occuring problem)
    user selects a problem
    fetch solutions for the problem and show them.

答案 1 :(得分:0)

csv库可以帮助您完成此任务。这是链接

https://docs.python.org/2/library/csv.html

我喜欢使用DictReader和DictWriter。

import csv

input_d = list()
while(True):
  make = input('Enter make')
  # fill in the rest
  input_d.append(dict(make=make, #fill in the rest))
  # figure out how to break this loop
with open('path/to/save/csv/file', 'w') as fh:  
  headers = input_d.keys()
  writer = csv.DictWriter(fh, headers)
  writer.writeheader()
  writer.writerows(input_d)