I have a file format like this:
9 8 1
3 4 1
for line in f.readlines():
print line.split(" ")
['9', '8', '1\r\n']
['3', '4', '1\r\n']
Using the code you have and addressing your specific question of how to convert your list to integers:
You can iterate through each line and convert the strings to
int with the following example using list comprehension:
line =['3', '4', '1\r\n']
int_list = [int(i) for i in line]
will yield a list of integers
[3, 4, 1]
that you can then access via subscripts (0 to 2). e.g.
A more streamlined version for your consideration:
with open('data.txt') as f: for line in f: int_list = [int(i) for i in line.split()] print int_list
The advantage of using
with is that it will automatically close your file for you when you are done, or if you encounter an exception.
Based on your comments below, if you want the numbers in 3 different variables, say
c, you can do the following:
for line in f: a, b, c = [int(i) for i in line.split()] print 'a = %d, b = %d, c = %d\n' %(a, b, c)
and get this:
a = 9, b = 8, c = 1
This counts on there being 3 numbers on each line.
Note that in place of "list comprehension" (LC) you can also use a "generator expression" (GE) of this form:
a, b, c = (int(i) for i in line.split())
for your particular problem with 3 integers this doesn't make much difference, but I show it for completeness. For larger problems, LC requires more memory as it generates a complete list in memory at once, while GE generate a value one by one as needed. This SO question Generator Expressions vs. List Comprehension will give you more information if you are curious.