简体   繁体   中英

Searching a CSV file

I need to filter and do some math on data coming from CSV files.

I've wrote a simple Pyhton script to isolate the rows I need to get (they should contain certain keywords like "Kite"), but my script does not work and I can't find why. Can you tell me what is wrong with it? Another thing: once I get to the chosen row/s, how can I point to each (comma separated) column?

Thanks in advance.

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)

To find the rows than contain the word "Kite", then you should use

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

Now that you know how to find the required rows, you can access the desired cells by indexing the rows. For example, if you want to select the second cell of a row, you simply do

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

You are reading the file in bytes. Change the open('filepathAndName.csv, 'r') command or convert your strings like "Kite".encode('UTF-8') . The second mistake could be that you are looking for a line with the word "Kite", but if "Kite" is a substring of that line it will not be found. In this case you have to use 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)

Read this: https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM