搜索CSV文件

时间:2014-05-17 09:31:35

标签: python csv

我需要对来自CSV文件的数据进行过滤和算术。

我已经编写了一个简单的Pyhton脚本来隔离我需要获取的行(它们应该包含某些关键字,例如" Kite"),但我的脚本不起作用,我可以'找到原因。你能告诉我它有什么问题吗?另一件事:一旦我到达所选择的行,我如何指向每个(逗号分隔)列?

提前致谢。

R上。

import csv

with open('sales-2013.csv', 'rb') as csvfile:
    sales = csv.reader(csvfile)
    for row in sales:
        if row == "Kite":
            print ",".join(row)

2 个答案:

答案 0 :(得分:0)

要查找包含一词的行“Kite”,那么您应该使用

for row in sales:   # here you iterate over every row (a *list* of cells)
    if "Kite" in row:
        # do stuff

现在您已了解如何查找所需的行,您可以通过索引行来访问所需的单元格。例如,如果要选择行的第二个单元格,只需执行

即可
cell = row[1]  # remember, indexes start with 0

答案 1 :(得分:0)

您正在以字节为单位读取文件。更改open('filepathAndName.csv, 'r')命令或将您的字符串转换为"Kite".encode('UTF-8')。第二个错误可能是你正在寻找一个单词" Kite",但是如果" Kite"是该行的子字符串,它将无法找到。在这种情况下,您必须使用if "Kite" in row:

with open('sales-2013.csv', 'rb') as csvfile: # <- change 'rb' to 'r'
    sales = csv.reader(csvfile)
    for row in sales:
        if row == "Kite": # <- this would be better: if "Kite" in row:
            print ",".join(row)

阅读本文: https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files