Hello,
I am having some trouble in importing a CSV file into an array. The CSV file has multiple columns, and what i really wanted to end up doing is getting the element inside each block of the CSV file. So far i've only been able to get a row into a variable.

End result, i would like to find what's inside of each cell as to give it a number and store it inside my own 2-d array.
Thanks for the help!

You forgot to put in your code. Do not forget first to push CODE before pasting.

Edited 3 Years Ago by happygeek: fixed formatting

I'm quite new to python. I've used it as a scripting language before, and i'm a C++ programmer myself, so still learning here.
Here's what i got:

#!/usr/bin/python
import csv
a = [];
i=0;

b='';

csvReader = csv.reader(open('setcubed.csv', 'rb'), delimiter=' ', quotechar='|');
for row in csvReader:
	a.append(row);
	
for i in range(0, len(a)):
	print a[i];

And here's the output:

What I want to do is be able to look at each of those cells so i can give a value to another array depending on what is in that cell.

Here is some code that may help you:

import string

file = open("example.csv", "rb")
lines = []
for line in file.xreadlines():
    print line
    lines.append(string.split(line, ','))

This method has one flaw: string.split also includes \r\n in the last string of the list.

I'm quite new to python. I've used it as a scripting language before, and i'm a C++ programmer myself, so still learning here.
Here's what i got:

#!/usr/bin/python
import csv
a = [];
i=0;

b='';

csvReader = csv.reader(open('setcubed.csv', 'rb'), delimiter=' ', quotechar='|');
for row in csvReader:
	a.append(row);
	
for i in range(0, len(a)):
	print a[i];

And here's the output:

What I want to do is be able to look at each of those cells so i can give a value to another array depending on what is in that cell.

I didn't know that Python has its own module for csv. There are a lot of modules in Python that already provides a lot of useful things for any programmer.

Some tips about your code GDICommander's
Dont use "file" as an variable name,it`s a reseverd keyword for python.
You dont need "import string" to use split.
So it could look like this,wihout \r\n

my_file = open("example.csv", "rb")
for line in my_file:
    l = [i.strip() for i in line.split(',')]
    print l

Edited 5 Years Ago by snippsat: n/a

Some tips about your code GDICommander's
Dont use "file" as an variable name,it`s a reseverd keyword for python.
You dont need "import string" to use split.
So it could look like this,wihout \r\n

my_file = open("example.csv", "rb")
for line in my_file:
    l = [i.strip() for i in line.split(',')]
    print l

Thanks for these tips. I really love beautiful code and I will gladly accept these comments.

I normally do not use csv for simple unquoted data, but shouldn't you use delimeter=','?

Be carefull with your syntax. ';' is very rearly used in Python even it exist. Read http://www.python.org/dev/peps/pep-0008/ and http://dirtsimple.org/2004/12/python-is-not-java.html to get good start.

Here is my style of code reading your file in assuming it actually did not have quoting with pipe characters originally:

#!/usr/bin/python
from pprint import pprint

with open('setcubed.csv') as csvfile:
    next(csvfile) # ignore header
    a = [ row.strip().split(',') for row in csvfile]
    die = dict((data[0],data[1:]) for data in a)
	
pprint(a)
print
pprint(sorted(die.items()))
print
print "Die d25 informations:"
print die['d25']

Edited 5 Years Ago by pyTony: n/a

I could reallly use some help. I am a complete newbie in python. What I would like to do is import a csv file (originally an excel file). Have the user pick a beginning month and an ending month and add the columns of the months between. For example I have the following headers

Station Name,Lat,Long,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
Test 1,45.125478,-105.623154,3.12,0.15,0.08,0.61,0.67,1.24,2.32,1.06,0.64,0.07,0.32,1.02
Test 2,42.854123,-106.321587,0.09,3.15,1.61,0.03,0.84,1.62,3.01,1.51,0.81,0.02,0.23,1.09
Test 3,43.974532,-105.896214,2.65,2.01,0.05,3.02,1.05,0.08,0.08,1.06,0.43,0.65,0.12,1.06

If the user selected April as the beginning month and Jul as the ending month I would like output like

Station Name,Lat,Long,Sum
Test 1,45.125478,-105.623154,4.84
Test 2,42.854123,-106.321587,5.50
Test 3,43.974532,-105.896214,4.23

Any help would be greatly appreciated.

Comments
Not related to the question, do own thread!
This article has been dead for over six months. Start a new discussion instead.