String slices

Rhodri James rhodri at kynesim.co.uk
Fri Aug 9 10:29:43 EDT 2019


On 09/08/2019 15:13, Paul St George wrote:
> In the code (below) I want a new line like this:
> 
> Plane rotation X: 0.0
> Plane rotation Y: 0.0
> Plane rotation Z: 0.0
> 
> But not like this:
> 
> Plane rotation X:
> 0.0
> Plane rotation Y:
> 0.0
> Plane rotation Z:
> 0.0
> 
> Is it possible?
> (I am using Python 3.5 within Blender.)
> 
> #
> import os
> 
> outstream = open(os.path.splitext(bpy.data.filepath)[0] + ".txt",'w')
> 
> print(
> 
> "Plane rotation X:",bpy.data.objects["Plane"].rotation_euler[0],
> 
> "Plane rotation Y:",bpy.data.objects["Plane"].rotation_euler[1],
> 
> "Plane rotation Z:",bpy.data.objects["Plane"].rotation_euler[2],
> 
> file=outstream, sep="\n"
> 
> )
> 
> outstream.close()

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 ;-)




-- 
Rhodri James *-* Kynesim Ltd



More information about the Python-list mailing list