On 09Aug2019 22:28, Paul St George <em...@paulstgeorge.com> wrote:
On 09/08/2019 16:29, Rhodri James wrote:
The 'sep="\n"' parameter to print() means "put a newline between each
item." So don't do that. Put the newlines you do want in explicitly,
or use separate calls to print():
(I'm abbreviating because I really can't be bothered to type that
much :-)
print("X:", thing[0],
"\nY:", thing[1],
"\nZ:", thing[2],
file=outstream)
or
print("X:", thing[0], file=outstream)
print("Y:", thing[1], file=outstream)
print("Z:", thing[2], file=outstream)
I would probably use the latter, but it's just a matter of personal
preference.
(Actually I would probably use outstream.write() and do my own
formatting, but let's not get side-tracked ;-)
So, I am going with your second suggestion (see below) but I would love
to hear your outstream.write() side-track!
I am not Rhodri James, but you can just write strings to text files:
outstream.write("X: ") # note, includes the space separator
outstream.write(str(thing[0]))
outstring.write("\n")
print() is convenient, because it calls str() on any non-str argument
for you, and it does the space separators and newline line ending (both
overridable).
You can see the above is rather verbose. But it does let you control
exactly what gets written, _if_ the print separators and endings are
causing you inconvenience.
Personally, for text output, I use print unless there's some compelling
reason not to (such as transcribing a data structure precisely, not
wanting unexpected spaces and newlines; if I were hand transcribing JSON
or XML or HTML or the like).
Cheers,
Cameron Simpson <c...@cskk.id.au>
--
https://mail.python.org/mailman/listinfo/python-list