1. Not finding help here? Sign up for a free 30min tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Problem reading file manipualting values therein, Python

  1. Nov 14, 2011 #1
    I was trying to write code that would read integers stored in a file, line by line and then save them to a list and average that list and display it, it didn't work. What can I do to correct this code, I believe that the error is in how I am treating the list but I am confused at why the interpreter can't understand it.

    I'm still to this and appreciate the help

    -- The attempt at a solution


    Code (Text):

    if (os.path.isfile("Testing_1.txt")):
         inFile = open("Testing_1.txt", "r")
         list_to_av=[ ]

         inLine = inFile.readline()
         while len(inLine) > 0:
           
              inLine = inFile.readline()
              list_to_av.append((inLine))
         print  int(str(list_to_av))/ len(list_to_av)
         inFile.close()
    else:
         print "Testing_1.txt cannot be found."
     
     
    Last edited: Nov 14, 2011
  2. jcsd
  3. Nov 14, 2011 #2

    Dick

    User Avatar
    Science Advisor
    Homework Helper

    There are several errors in there. But it's best that you find them yourself. When I run that with a sample input file, I get:
    ValueError: invalid literal for int() with base 10: "['2\\n', '3\\n', '']"
    Doesn't that mean something to you? What is 'int' supposed to do?
     
    Last edited: Nov 14, 2011
  4. Nov 14, 2011 #3
    int is supposed to convert the data type in this case the literal values aren't only "numbers" so it crashes

    I understand that error but I don't understand what the correct approach is
     
  5. Nov 14, 2011 #4

    Dick

    User Avatar
    Science Advisor
    Homework Helper

    int converts a string to a single number. If it can. And it doesn't sum over numbers in the string. "['2\\n', '3\\n', '']" doesn't convert to single number. It's a string representation of a list of strings. Maybe you should convert the strings to numbers as they are read in and sum the numbers? The error message from 'int' is giving you the string it was trying to convert. Try and empathize with 'int' and figure you why you would have a hard time converting that to a number.
     
  6. Nov 14, 2011 #5
    I understand that int cant convert the strings in the list because of the \\n, because it is not a number like I said above

    What I don't understand is where or how I use the list to provide me with something that is not a string but is and integer

    If I attempt to take the strings and store them as they are read how would I convert them to ints?
     
  7. Nov 14, 2011 #6

    Dick

    User Avatar
    Science Advisor
    Homework Helper

    Why don't you convert inLine to an integer and store the integers into a list?
     
  8. Nov 15, 2011 #7
    I see fo the reason that it has the read in it I didn't think I could convert inLine, and so never tried when fiddling around with the code, I wonder why I thought that.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Problem reading file manipualting values therein, Python
  1. Python and file output (Replies: 3)

  2. Reading a File (Replies: 2)

Loading...