| 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.
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.