karthik...@gmail.com wrote:
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.


I never heard of arange(), but perhaps you meant range() or xrange(). If so, the first problem is that range(100) starts with 0 and ends just before 100, so you only get the values 0 to 99. So if you need the final value to be 100, you need to pass it a 101.

Next problem is that you're using str() on a list. All that does is try to give you some printable representation of the list. You've observed it divides it into lines, but that's arbitrary. If you want the output to look a certain way, build it that way. Use write instead of writelines, and put your own \n at the end.

Create a for loop, iterate over the list q, writing each value with a trailing space, and follow the loop with one extra write, containing the closing brace, and the newline.

Don't forget the leading brace as well.


Sometimes debugging these things can be easier if you temporarily use sys.stdout instead of a file, while you're working on it.


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to