【问题标题】:call python script and store return value in perl [duplicate]调用python脚本并将返回值存储在perl中[重复]
【发布时间】:2018-07-25 23:55:31
【问题描述】:

我有一个 perl 脚本,我在其中通过位于另一个位置的系统命令调用 python 脚本。

调用python脚本的Perl脚本部分

$path=system("C:\\FindPath\\find_path_location.py", $ID);
print $path;

python 脚本接受参数 $ID,进行一些处理并生成存储在变量 path1 中的路径。我想在我的 perl 脚本中使用“path1”的值

find_path_location.py

def main(argv=sys.argv[1:]):
    *function execution*
    path1 = *some path which is generated*
    print "{0}".format(path1)
    return path1


if __name__ == '__main__':
    startTime = time.time()

    try :
        main()
    except Exception as e :
         print >> sys.stderr, "Error: " + str(type(e))
         traceback.print_exc()
    finally :
         endTime = time.time()
    print "Total Time: " + str(round((endTime - startTime), 2)) + " Seconds"
    print "Done."

"print "{0}".format(path1)" 正在打印正确的路径,但我无法在 perl 中获得该值。 如何将路径值存储在 perl 中的变量中??

【问题讨论】:

    标签: python python-2.7 perl


    【解决方案1】:

    Perl 内置的system 返回程序的返回值,而不是 STDOUT。您需要使用qx()

    my $path= qx(C:\\FindPath\\find_path_location.py $ID);
    

    但请注意,您不能给qx 提供多个参数,因为它是一个运算符,而不是一个函数

    【讨论】:

      猜你喜欢
      • 2012-08-07
      • 2012-11-18
      • 2014-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多