在csv文件中搜索

时间:2014-02-02 10:37:22

标签: python file search csv

如何在csv文件中的前两个逗号之间进行搜索? 例如: CSV文件:

    name, surname, age , gender

我如何仅使用用户输入搜索前两个名称和姓氏?

这就是我所拥有的。我正在寻找用户只能通过姓名或姓氏搜索:

    searchfile = open("python.csv", "r")        
    a=input()
    for line in file: 
        if a in line:
            print(line)

当我这样做时,用户可以输入文件中的任何内容,它将打印该行。我只想搜索名字和姓氏的前两个逗号。如果输入不存在则拒绝。

3 个答案:

答案 0 :(得分:1)

您可以使用csv module: 它包含一个名为 reader 的对象,它允许您通过定义分隔符来分割csv文件的每一行:

import csv

searchfile = open('python.csv', 'rb')
reader = csv.reader(searchfile, delimiter = ',')
a = input()
for row in reader:
    if a in row[0] or a in row[1]:
        print row

请注意,如果您在csv文件中查找字符串,则应使用raw_input()而不是input(),它仅用于数字。

答案 1 :(得分:0)

您可以用逗号分割line。然后搜索你想要的地方。像这样:

for line in file:             # line = "name, surname, age , gender"
    fields = line.split(',')  # fields = ["name", " surname" , " age", " gender"]
    if a in fields[0] or a in fields[1]:
        print(line)

根据您未来的计划,这不需要是最佳解决方案。另请注意fields中的前导/尾随空格。

答案 2 :(得分:0)

使用csv

import csv
searchfile = open("python.csv", "rb")
reader = csv.reader(searchfile)
for row in reader:
    if a in row[0] or a in row[1]:
        print row