Path: csiph.com!usenet.pasdenom.info!news.albasani.net!newsfeed.freenet.ag!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'element': 0.07; 'interpreter.': 0.07; 'subject:file': 0.07; 'variables': 0.07; '[1,': 0.09; 'assuming': 0.09; 'executes': 0.09; 'objects,': 0.09; 'strings.': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; "'r',": 0.16; "'w')": 0.16; "['a',": 0.16; 'format:': 0.16; 'help?': 0.16; 'newline,': 0.16; 'subject:txt': 0.16; 'tab,': 0.16; '\xa0this': 0.16; 'subject:python': 0.16; 'followed': 0.16; 'wrote:': 0.18; 'obviously': 0.18; "skip:' 30": 0.19; 'work,': 0.20; '8bit%:5': 0.22; 'code,': 0.22; 'email addr:gmail.com>': 0.22; 'cc:addr:python.org': 0.22; 'print': 0.22; 'skip:\xa0 20': 0.24; '\xa0so': 0.24; 'cc:2**0': 0.24; 'cc:no real name:2**0': 0.24; 'this:': 0.26; 'code:': 0.26; 'header:In-Reply-To:1': 0.27; "doesn't": 0.30; 'message-id:@mail.gmail.com': 0.30; 'code': 0.31; "skip:' 10": 0.31; '(although': 0.31; 'equivalent.': 0.31; 'prints': 0.31; 'txt': 0.31; 'file': 0.32; 'lists': 0.32; 'another': 0.32; 'fri,': 0.33; 'subject:from': 0.34; "can't": 0.35; 'something': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'subject:data': 0.36; 'doing': 0.36; 'next': 0.36; 'skip:o 20': 0.38; '8bit%:4': 0.38; 'jason': 0.38; 'skip:- 10': 0.38; 'pm,': 0.38; 'rather': 0.38; '8bit%:6': 0.40; 'skip:x 10': 0.40; 'letters': 0.60; 'most': 0.60; 'first': 0.61; 'different': 0.65; 'to:addr:gmail.com': 0.65; 'mar': 0.68; 'export': 0.74; 'to:charset:iso-8859-1': 0.74; 'walk': 0.74; 'ana': 0.84; '2013': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=5aJhucFhQRv1/G3g1KtbHjczQ8GWKGsjORs4chlrN5w=; b=pq7zLCG7A+1VuYya0tswrFV3oO9fVfYf596VGCcncW3OX87i05hRx2fqyrW8q4eCyu 9kYUmWjg1IBG2k0RJSm43SjVBSZjXarhEBSeShx3ip6uz/ZgA9/5vbg+bCyRMq7j8JM8 7OnUavsSjslAYYE+XO458ZXZDQyqAZsBQTjtgBH/qgHsJCUBP1XI834vqMLmv42606GA LYx1KYIlxVDSREhPtc9ilgSBNQo04ZuepbDECmzsaD3+Rjg5yHMvLJpOAvFyvCUjv0gu B1LuXfz12D1MxXkB1vHs98MLI2oWHKBjsF+aEG7FNQ3K6oQ7UykGRNPWukHDx8XivqZp UPww== MIME-Version: 1.0 X-Received: by 10.50.153.232 with SMTP id vj8mr293896igb.2.1364579532710; Fri, 29 Mar 2013 10:52:12 -0700 (PDT) In-Reply-To: References: Date: Fri, 29 Mar 2013 13:52:12 -0400 Subject: Re: Export data from python to a txt file From: Jason Swails To: =?ISO-8859-1?Q?Ana_Dion=EDsio?= Content-Type: multipart/alternative; boundary=e89a8f23551f50f6fd04d913ee5b Cc: python-list@python.org X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 174 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1364579536 news.xs4all.nl 6893 [2001:888:2000:d::a6]:38990 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:42259 --e89a8f23551f50f6fd04d913ee5b Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Fri, Mar 29, 2013 at 1:33 PM, Ana Dion=EDsio w= rote: > Hello!!! > > I have this lists a=3D[1,3,5,6,10], b=3D[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 =3D [1, 3, 5, 6, 10] b =3D [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 =3D ['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 =3D 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 --e89a8f23551f50f6fd04d913ee5b Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable


a =3D [1, 3, 5, 6, 10]
b =3D [a, t, q, r, s]= =A0

won't work, since it interprets the letter= s in the b-list as variables rather than strings. =A0It would need to be

b =3D ['a', 't', 'q', 'r', &= #39;s']

or something equivalent. =A0Assuming y= ou had that part correct:

a 1 3 5 6 10
b a t q r s

--begin-- [tab] =A01 [tab] =A0a [tab] =A0 3 [tab] =A0 t [= tab] =A0 5 [tab] =A0 q [tab] =A0 6 [tab] =A0 r [tab] =A0 10 [tab] =A0 s [ta= b]--end--

So the final file will look something li= ke this:

a
b
=A0 =A0 =A01 =A0 =A0 a =A0 =A0 3 =A0= =A0 t =A0 =A0 5 =A0 =A0 q =A0 =A0 6 =A0 =A0 r =A0 =A0 10 =A0 =A0 s


which is obviously not what you want. =A0T= he following code will do what you want (although there are ways of doing t= his in less code, this is the most straightforward):

f.write('a\t')
for element in a:
=A0 =A0f.write(str(element) + '\t')
f.write('\n= ')
f.write('b\t')
for element in b:
=A0 =A0f.write(str(element) + '\t')
f.write('\n')=

HTH,
Jason
--e89a8f23551f50f6fd04d913ee5b--