Assuming there is no problem with opening the file, here are some hints.
Your list L
contains the lines of the file f
, which seems to be only one line. Hence L[0]
is a string that looks like "0,1,0,1,1,....,1\n"
with \n
standing for the line feed character.
To extract the elements of that list, remove that character, then split the string to get a list:
sage: L[0].replace('\n','').split(',')
['0', '1', '0', '1', '1',..., '1']
Then turn that list of strings into a list of integers:
sage: A = [ZZ(i) for i in L[0].replace('\n','').split(',')]
sage: A
[0, 1, 0, 1, 1, ..., 1]
Another (simpler) way is to use the csv
module that deals well with comma separated values:
sage: r = csv.reader(f)
sage: A = [ZZ(i) for i in next(r)]
sage: A
[0, 1, 0, 1, 1, ..., 1]
Finally, the Python documentation about reading and writing files
recommends using with
to deal with files.
So instead of
sage: f = open('path/abc.txt')
sage: L = f.readlines()
sage: A = [ZZ(i) for i in L[0].replace('\n','').split(',')]
the advice is to use
sage: with open('path/abc.txt', 'r') as f:
....: L = f.readlines()
sage: A = [ZZ(i) for i in L[0].replace('\n','').split(',')]
This takes care of closing the file after it has been used,
including if some error happens while reading from the file.
What error do you get ?