回到python中的CSV文件

时间:2015-05-14 12:03:57

标签: python parsing csv

我正在尝试解析CSV文件,如下所示:

name, init
Tim Keller, TK
Nick Fill, NK

这就是我想要的,有人像TK那样输入,我会把他还给Hello Tim Keller !

我唯一的问题是我无法回退我的CSV文件(嗯......我不知道该怎么做..)

这就是我所做的:

with open('datas.csv', 'rb') as csvfile:
        spamreader = csv.reader(csvfile, delimiter=';', quotechar='|')
        for row in spamreader:
                for columns in row:
                        if columns == args[i]:
                                print "Hello ", columns, " !"

如果用户输入TK,我会打印回Hello TK !

我试过类似columns-1的东西,但似乎不喜欢它......

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

            for columns in row:

没有必要。如果你在垃圾邮件阅读器中排行,你已经同时拥有两个部分,只有索引行:row[0]是名称,row[1]是昵称。

请参阅fine manual

答案 1 :(得分:1)

根据您的示例数据,您的分隔符是逗号(,),或者可能是逗号后跟空格。目前还不清楚引用字符是什么,但我将其保留为默认值。

另外,我假设CSV文件包含多行,如下所示:

name,init
Tim Keller,TK
Nick Fill,NK

处理此文件的代码如下:

import csv

search_initials = raw_input('Enter initials: ').strip()
with open('datas.csv', 'rb') as csvfile:
    for name, initials in csv.reader(csvfile):
        if initials == search_initials:
            print "Hello {}!".format(name)

答案 2 :(得分:0)

将行放入"行"可能会更清楚。变量但变成两个更有意义的变量:

for name, init in spamreader:
    if init == args[i]:
        print "Hello ", name, " !"