1 | initial version |
Assuming that 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.
Hence, f you want to extract the elements of that list, you have to remove that character, and then split the string to get a list, with something like:
sage: L[0].replace('\n','').split(',')
['0', '1', '0', '1', '1',..., '1']
But ten you have a list of characters, not integers, so you have to turn the elements of your list into 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 coma separated values:
sage: r = csv.reader(f)
sage: A = [ZZ(i) for i in next(r)]
sage: A
[0, 1, 0, 1, 1, ..., 1]
2 | No.2 Revision |
Assuming that 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' \n
standing for the line feed character.
Hence, f you want to extract the elements of that list, you have to remove that character, and then split the string to get a list, with something like:
sage: L[0].replace('\n','').split(',')
['0', '1', '0', '1', '1',..., '1']
But ten you have a list of characters, not integers, so you have to turn the elements of your list into 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 coma separated values:
sage: r = csv.reader(f)
sage: A = [ZZ(i) for i in next(r)]
sage: A
[0, 1, 0, 1, 1, ..., 1]
3 | No.3 Revision |
Assuming that there is no problem with opening the file, here are some hints:
your 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.
Hence, f you want to To extract the elements of that list, you have to remove that character, and then split the string to get a list, with something like:list:
sage: L[0].replace('\n','').split(',')
['0', '1', '0', '1', '1',..., '1']
But ten you have Then turn that list of strings into a list of characters, not integers, so you have to turn the elements of your list into 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 coma 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.