On 08/08/2019 10:18, Peter Otten wrote:
Paul St George wrote:I am using Python 3.5 within Blender. I want to collect values of the current settings and then write all the results to a file. I can see the settings and the values in the Python console by doing this for each of the settings | | |print(“Focal length:”,bpy.context.object.data.lens)| ---Focal length: 35.0 or I can do many at a time like this: |print("Plane rotation X:",bpy.data.objects["Plane"].rotation_euler[0],"\nPlane rotation Y:",bpy.data.objects["Plane"].rotation_euler[1],"\nPlane rotation Z:",bpy.data.objects["Plane"].rotation_euler[2])| ---Plane rotation X: 0.0 ---Plane rotation Y: 0.0 ---Plane rotation Z: 0.0 My question: How do I write all the results to a file? I have tried file.write but can only write one argument at a time. Is there a better way to open a file, write the collected information to it and then close the file?The print() function has a keyword-only file argument. So: with open(..., "w") as outstream: print("Focal length:", bpy.context.object.data.lens, file=outstream)|print("Plane rotation X:",bpy.data.objects["Plane"].rotation_euler[0],"\nPlane rotation Y:",bpy.data.objects["Plane"].rotation_euler[1],"\nPlane rotation Z:",bpy.data.objects["Plane"].rotation_euler[2])|This looks messy to me. I' probably use intermediate variables x, y, z = bpy.data.objects["Plane"].rotation_euler print( "Plane rotation X:", x, "Plane rotation Y:", y, "Plane rotation Z:", z, file=outstream, sep="\n" ) or even a loop.
That worked perfectly. outstream = open(path to my file,'w') print( whatever I want to print file=outstream ) outstream.close() -- https://mail.python.org/mailman/listinfo/python-list
