large array in a single line

Arnaud Delobelle arnodel at googlemail.com
Tue May 26 18:10:02 CEST 2009


karthik167 at gmail.com writes:

> On May 26, 7:26 pm, Arnaud Delobelle <arno... at googlemail.com> wrote:
>> karthik... 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.
>>
>> --
>> Arnaud
>
> arange(start, stop=None, step=1, typecode=None)
>
>      Just like range() except it returns an array whose type can be
>     specified by the keyword argument typecode.

You didn't mention that it is a numpy function!  It returns a
numpy.ndarray object whose __str__() method automatically inserts
newlines to make the output easier to read I guess.

Don't use this, then. You can do for instance:

fl = open('tmp.ext', 'w')
fl.writelines(['[', ' '.join(range(1, 101)), ']'])
fl.close()

(untested)

-- 
Arnaud




More information about the Python-list mailing list