large array in a single line

Ken Seehart ken at seehart.com
Tue May 26 11:01:36 EDT 2009


Arnaud Delobelle wrote:
> karthik167 at gmail.com writes:
>
>   
>> I would like to have a txt file of single line with
>> [1 2 3 .........100]
>>
>> I try something like
>> q=arange(100)
>> fl=file('tmp.ext','w')
>> fl.writelines(str(q))
>> fl.close()
>>
>> Unfortunately my output is
>>
>> [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22
>> 23 24
>>  25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
>> 48 49
>>  50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
>> 73 74
>>  75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
>> 98 99]
>>
>> ie there is automatic split in line after 76 characters. How do I
>> avoid it? Thanks.
>>     
>
> You need to tell us more about the arange() function you use and what
> object it returns.
>   

That would be *numpy.arange

*Since numpy has it's own idea about formatting, you would have to roll 
your own.

How about:

    q=arange(100)
    *s = '[' + ' '.join([`x` for x in q]) + ']'*
    fl=file('tmp.ext','w')
    fl.*write*(s)
    fl.close()
      

See: http://docs.python.org/tutorial/datastructures.html#list-comprehensions

Incidentally, it's a funny thing that* writelines *coincidentally does 
what you expect it to do when given a string.  I suspect that you need 
to read the documentation on* writelines*:

file.writelines(/sequence/)
    Write a sequence of strings to the file. The sequence can be any
    iterable object producing strings, typically a list of strings.
    There is no return value. (The name is intended to match
    readlines(); writelines() does not add line separators.)

So you are asking it to effectively concatenate the characters in your 
string, (which gives you back your original string), and write the 
result.  Simply using* write *instead would be more efficient in this case.

Ken

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20090526/32b7e021/attachment-0001.html>


More information about the Python-list mailing list