Arnaud Delobelle wrote:
karthik...@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
--
http://mail.python.org/mailman/listinfo/python-list