• Support PF! Buy your school textbooks, materials and every day products Here!

Problem reading file manipualting values therein, Python

  • Comp Sci
  • Thread starter mr.me
  • Start date
  • #1
49
0
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:
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:

Answers and Replies

  • #2
Dick
Science Advisor
Homework Helper
26,258
618
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:
  • #3
49
0
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
 
  • #4
Dick
Science Advisor
Homework Helper
26,258
618
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.
 
  • #5
49
0
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?
 
  • #6
Dick
Science Advisor
Homework Helper
26,258
618
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?
Why don't you convert inLine to an integer and store the integers into a list?
 
  • #7
49
0
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.
 

Related Threads on Problem reading file manipualting values therein, Python

Replies
5
Views
38K
  • Last Post
Replies
3
Views
2K
  • Last Post
Replies
2
Views
1K
Replies
3
Views
579
Replies
0
Views
1K
  • Last Post
Replies
14
Views
894
Replies
10
Views
6K
Replies
19
Views
2K
  • Last Post
Replies
6
Views
2K
Top