I\'m trying to run a Perl script from Python. I know that if run the Perl script in terminal and I want the output of the Perl script to be written a file I need to add
subprocess.call("perl myCode.pl >results.txt", shell=True)
or
subprocess.call(["sh", "-c", "perl myCode.pl >results.txt"])
or
with open('results.txt', 'wb', 0) as file:
subprocess.call(["perl", "myCode.pl"], stdout=file)
The first two invoke a shell to execute the shell command perl myCode.pl > results.txt
. The last one executes perl
directly by having call
do the redirection itself. This is the more reliable solution.