开发者

How to call a python script from Perl?

开发者 https://www.devze.com 2023-03-13 06:39 出处:网络
I need to call \"/usr/bin/pdf2txt.py\" with few arguments from my Perl script. How should开发者_StackOverflow i do this ?If you need to capture STDOUT:

I need to call "/usr/bin/pdf2txt.py" with few arguments from my Perl script. How should开发者_StackOverflow i do this ?


If you need to capture STDOUT:

my $ret = `/usr/bin/pdf2txt.py arg1 arg2`;

You can easily capture STDERR redirecting it to STDOUT:

my $ret = `/usr/bin/pdf2txt.py arg1 arg2 2>&1`;

If you need to capture the exit status, then you can use:

my $ret = system("/usr/bin/pdf2txt.py arg1 arg2");

Take in mind that both `` and system() block until the program finishes execution.

If you don't want to wait, or you need to capture both STDOUT/STDERR and exit status, then you should use IPC::Open3.


my $output = `/usr/bin/pdf2txt.py arg1 arg2`;


If you don't need the script output, but you want the return code, use system():

...
my $bin = "/usr/bin/pdf2txt.py";
my @args = qw(arg1 arg2 arg3);
my $cmd = "$bin ".join(" ", @args);

system ($cmd) == 0 or die "command was unable to run to completion:\n$cmd\n";


IF you want to see output in "real time" and not when script has finished running , Add -u after python. example :

my $ret = system("python -u pdf2txt.py arg1 arg2");

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号