On Fri, Mar 29, 2013 at 1:33 PM, Ana DionĂsio <anadionisio...@gmail.com>wrote:
> Hello!!! > > I have this lists a=[1,3,5,6,10], b=[a,t,q,r,s] and I need to export it to > a txt file and I can't use csv. > It would help if you showed exactly what you had in your program or in the Python interpreter. For instance a = [1, 3, 5, 6, 10] b = [a, t, q, r, s] won't work, since it interprets the letters in the b-list as variables rather than strings. It would need to be b = ['a', 't', 'q', 'r', 's'] or something equivalent. Assuming you had that part correct: > And I want the next format: > > a 1 3 5 6 10 > b a t q r s > > I already have this code: > > "f = open("test.txt", 'w') > f.write("a") > f.write("\n") > f.write("b") > f.write("\n") > > for i in xrange(len(a)): > LDFile.write("\t") > LDFile.write(str(a[i])) > LDFile.write("\t") > LDFile.write(str(b[i])) > > f.close()" > > But it doesn't have the format I want. Can you help? > Walk through exactly what the computer is doing here. First it prints a, then a newline, then b, then a newline: --begin-- a b --end-- Then your for loop executes (notice LDFile and f are different file objects, so they won't write to the same location). This will print a tab, followed by the i'th element of a, followed by another tab, followed by the i'th element of b. So this: a 1 3 5 6 10 b a t q r s --begin-- [tab] 1 [tab] a [tab] 3 [tab] t [tab] 5 [tab] q [tab] 6 [tab] r [tab] 10 [tab] s [tab]--end-- So the final file will look something like this: a b 1 a 3 t 5 q 6 r 10 s which is obviously not what you want. The following code will do what you want (although there are ways of doing this in less code, this is the most straightforward): f.write('a\t') for element in a: f.write(str(element) + '\t') f.write('\n') f.write('b\t') for element in b: f.write(str(element) + '\t') f.write('\n') HTH, Jason
-- http://mail.python.org/mailman/listinfo/python-list