<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Arnaud Delobelle wrote:
<blockquote cite="mid:m28wkk2b5n.fsf@googlemail.com" type="cite">
<pre wrap=""><a class="moz-txt-link-abbreviated" href="mailto:karthik167@gmail.com">karthik167@gmail.com</a> writes:
</pre>
<blockquote type="cite">
<pre wrap="">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.
</pre>
</blockquote>
<pre wrap=""><!---->
You need to tell us more about the arange() function you use and what
object it returns.
</pre>
</blockquote>
<br>
That would be <b><tt>numpy.arange<br>
<br>
</tt></b>Since numpy has it's own idea about formatting, you would have
to roll your own.<br>
<br>
How about:<br>
<blockquote>
<pre wrap="">q=arange(100)
<b>s = '[' + ' '.join([`x` for x in q]) + ']'</b>
fl=file('tmp.ext','w')
fl.<b>write</b>(s)
fl.close()
</pre>
</blockquote>
See:
<a class="moz-txt-link-freetext" href="http://docs.python.org/tutorial/datastructures.html#list-comprehensions">http://docs.python.org/tutorial/datastructures.html#list-comprehensions</a><br>
<br>
Incidentally, it's a funny thing that<tt><b> writelines </b></tt>coincidentally
does what you expect it to do when given a string. I suspect that you
need to read the documentation on<tt><b> writelines</b></tt>:<br>
<dl class="method">
<dt id="file.writelines"><tt class="descclassname">file.</tt><tt
class="descname">writelines</tt><big>(</big><em>sequence</em><big>)</big></dt>
<dd>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 <tt class="xref docutils literal"><span
class="pre">readlines()</span></tt>; <tt class="xref docutils literal"><span
class="pre">writelines()</span></tt> does not
add line separators.)</dd>
</dl>
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<tt><b> write </b></tt>instead would be more
efficient in this case.<br>
<br>
Ken<br>
<br>
</body>
</html>