Output of python node

hello guys,
i wrote this script on python compiler but how to make the output as shown in the this code if i am using dynamo

if lst [s] [2] [z] > 5 :
print(“fixtures is”, inputfx)
print(“gpm is”, x)
print(“diameter is” , actual[s+1])
print(“velocity is” , lst[s+1][1][e])
print (“friction is”, lst[s+1][2][e])
else :
print(“fixtures is”, inputfx)
print(“gpm is” , x)
print(“diameter is”, actual[s])
print(“velocity is”, lst[s][1][z])
print(“friction is”, lst[s][2][z])

There is no easy way to do this. The one workaround I have used is to redirect stdout to a .txt file.

import sys

filepath = IN[0] # Assuming you're feeding a file path into the first input
# e.g. r'C:\Users\User1\Documents\Temporary\print.txt'
stdout_original = sys.stdout
stdout_file = open(filepath, 'w')
sys.stdout = stdout_file

print 'example'
print 'other example'

sys.stdout = stdout_original
stdout_file.close()

I also found this other interesting method which redirects stdout to StringIO() which won’t require you to open a separate file, but would require you to split your ‘printed’ data from the rest of your output going downstream.

If you’re looking to keep the results in Dynamo, then create variables and assign them to the output. Some sudo code:

if test
Variable1 = 1
Variable2 = 2

else
Variable1 = 3
Variable2 = 4

OUT = [Variable1, Variable2]

You can try the codes below, and link the OUT to a Watch Node.

import sys
from io import StringIO
sys.stdout = StringIO()

print("***Starting print***")

if lst [s] [2] [z] > 5 :
print(“fixtures is”, inputfx)
print(“gpm is”, x)
print(“diameter is” , actual[s+1])
print(“velocity is” , lst[s+1][1][e])
print (“friction is”, lst[s+1][2][e])
else :
print(“fixtures is”, inputfx)
print(“gpm is” , x)
print(“diameter is”, actual[s])
print(“velocity is”, lst[s][1][z])
print(“friction is”, lst[s][2][z])

print("***Ending print***")
sys.stdout.seek(0)

OUT = sys.stdout.read()