有没有一种简单的方法来匹配使用python的csv文件中的值?

时间:2011-07-27 00:13:45

标签: python csv

有没有一种简单的方法可以在不使用正则表达式的情况下使用python匹配csv文件的给定字段中的值?我在包含文本的csv文件中有一个字段。我希望编写一个python脚本,在名为file.csv的文件中对包含文本'eagle'的所有字段执行操作。

例如:

import csv

with open('file.csv', mode='r') as infile:
    reader = csv.reader(infile)
        for row in reader:
            match = row[3]
            if match == 'eagle':
                DO STUFF

上述代码不起作用。如何使用与字符串'eagle'匹配的所有row [3]值来执行STUFF?谢谢你的帮助!

编辑: 以下是'file.csv'

中的一些示例行
tree,rock,10000,eagle
plant,stone,500,owl
seed,boulder,7000,crane
fruit,pebble,60000000,hawk

我想匹配第1行和第4行的第[3]行,然后是DO STUFF。

2 个答案:

答案 0 :(得分:1)

它适用于我的机器。

bash-4.1$ cat > file.csv
tree,rock,10000,eagle
plant,stone,500,owl
seed,boulder,7000,crane
fruit,pebble,60000000,hawk
bash-4.1$ python
Python 2.7 (r27:82500, Sep 16 2010, 18:03:06) 
[GCC 4.5.1 20100907 (Red Hat 4.5.1-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import csv
>>> 
>>> with open('file.csv', mode='r') as infile:
...     reader = csv.reader(infile)
...     for row in reader:
...         match = row[3]
...         if match == 'eagle':
...             print(repr(match))
... 
'eagle'

答案 1 :(得分:0)

如果没有数据包含','字符,则按','拆分你的行。

string.split(row,",")

http://docs.python.org/library/string.html