from subprocess import Popen, PIPE
p1 = Popen(['tclsh', 'pgm.tcl'], stdout=PIPE)
p1out, p1err = p1.communicate()
if p1out is not None:
    print(p1out)
if p1err is not None:
    pass
How to run commands on same TCL shell using Python