如何从Perl调用python脚本?

Man*_*nde 15 python perl

我需要使用Perl脚本中的少量参数调用"/usr/bin/pdf2txt.py".我该怎么办?

Fra*_*o R 16

如果你需要捕获STDOUT:

my $ret = `/usr/bin/pdf2txt.py arg1 arg2`;
Run Code Online (Sandbox Code Playgroud)

您可以轻松捕获STDERR将其重定向到STDOUT:

my $ret = `/usr/bin/pdf2txt.py arg1 arg2 2>&1`;
Run Code Online (Sandbox Code Playgroud)

如果需要捕获退出状态,则可以使用:

my $ret = system("/usr/bin/pdf2txt.py arg1 arg2");
Run Code Online (Sandbox Code Playgroud)

就拿记住,这两个``system()块,直到程序执行完毕.

如果您不想等待,或者您需要同时捕获STDOUT/STDERR和退出状态,那么您应该使用IPC :: Open3.

  • 最好使用`system'/ usr/bin/pdf2txt.py',$ arg1,$ arg2`,因为这样可以避免shell插值的问题(以及危险的错误). (3认同)

Bla*_*iev 8

my $output = `/usr/bin/pdf2txt.py arg1 arg2`;
Run Code Online (Sandbox Code Playgroud)

  • 确保脚本是可执行的(chmod + x)并且它具有正确的hashbang(例如#!/ usr/bin/env python). (3认同)