On 03/19/2013 06:59 PM, C.T. wrote:
Hello,

Currently doing a project for class an I'm stuck. I have a csv file that I'm 
suppose to extract some information from. I've created a function that ignores 
the first six lines of the csv file and creates a list of values in a 
particular column. Here is the code:


def get_values(file, index):

     '''(file object, int) -> list
     Return a list of states and corresponding values at a prticular index in 
file.'''

     values_list = []
     file.readlines(900)#skipping first 6 lines of file
     for line in file:
         line_list = line.split(',')
         values_list.append(line_list[index])

     return values_list



#Prompt for file and prompt again if file is not found
while True:
     try:
         file_name = input('Enter in file name: ')
         input_file = open( file_name, 'r')
         break

     except IOError:
          print('File not found.')

heart_list = get_values(input_file, 1)
motor_list = get_values(input_file, 4)

I can see a list of values for heart_list, but when I print the motor_list I 
get back an empty list. I think its because I'm not closing the file before 
calling the function again, but I don't want to prompt for the same file over 
and over again because I need to pull at least 10 columns from this csv files 
and turn them into lists. Any help is appreciated.


f.seek(0)

will reposition the file to the beginning.

But you should switch to using the csv module. And unless you have data that consists of millions of lines, you should just read the whole thing in once, and then extract the various columns by simple list manipulations and/or comprehensions.


--
DaveA
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to