从实用角度出发,并未付诸于解释(有时间后期补充)。程序内容直接复制到文件,即可使用。
注意perl调用python路径在相同目录下;
python调用perl则不需要
系统环境:windows7
python版本:2.x
perl版本:This is perl 5, version 24, subversion 2 (v5.24.2) built for MSWin32-x86-multi-thread-64int
编辑器:notepad
notepad 配置python和perl运行环境方法:
http://blog.csdn.net/sunyan3517/article/details/74857499
代码语言:javascript复制perl调用python
use File::Spec;
*******perl代码*****perl_test.pl*********
sub PerlCallPython
{
my $path_curf = File::Spec->rel2abs(__FILE__);
print "C PATH = ",$path_curf,"n";
my ($vol, $dirs, $file) = File::Spec->splitpath($path_curf);
print "C Dir = ", $dirs,"n";
my $count = 1;#可以是任意字符串
chdir $dirs;#saveComment_temp.py 程序所在位置
system("python python_t.py -n $count");
}
chdir $dirs;#saveComment_temp.py 程序所在位置
PerlCallPython();
******python文件内需要的程序***python_t.py*******
#coding:utf-8
import argparse
parser = argparse.ArgumentParser() #建立parser
parser.add_argument('-n') #接受n存入
args = parser.parse_args() #得到所有参数
#获得的内容: Namespace(n='1')
#注意不是字符串 而是一个类,所以需要str()转换
path_temp = args;
print args;
========================================================================
========================================================================
========================================================================
python 调用 perl
python代码
#coding:utf-8
import subprocess
arg1 = "10";
arg2 = "20";
#无参数调用方法
#subprocess.call(["perl", "XXXXX\XXXXXX\perl_t.pl"]) #注意路径
#subprocess.call接受字符串参数,所以arg1 = "10";
#有参数调用方法
subprocess.call(["perl", "XXXXX\XXXXXX\perl_t.pl", arg1, arg2]) #注意路径
perl代码
print "call perln";
sub fun0
{
my $fun0_t0 = $ARGV[0];
my $fun0_t1 = $ARGV[1];
print "$fun0_t0: ($fun0_t0)n";
print "$fun0_t1: ($fun0_t1)n";
}
fun0();
sleep(1000);
修改上面的路径就可以只接运行程序