【问题标题】:Pass the multiple arguments with variable name from PHP to PYTHON将带有变量名的多个参数从 PHP 传递给 PYTHON
【发布时间】:2019-03-24 06:28:51
【问题描述】:

我需要将带有变量名的参数从 PHP 传递给 PYTHON。

这是我对编码的要求。

$output = shell_exec('python3 ActorArrayMatcher_FS2.py var1 = val1 & var2 = val2 & ... & varN = valN ');
print_r($output);

以及如何在python中接收

import sys
print(sys.argv)

请分享知识。提前致谢。

【问题讨论】:

    标签: php python arguments


    【解决方案1】:

    shell_exec() 是一个 bash(或其他解释器)调用,因此您需要像在命令行上运行它一样构建命令:

    $output = shell_exec('python3 ActorArrayMatcher_FS2.py var1=val1 var2=val2 varN=valN');
    

    注意事项:

    • python3 必须可由运行 PHP 脚本的用户执行
    • 确保通过escapeshellarg() 转义任何可变shell 参数,然后再将它们传递给shell_exec()
    • ActorArrayMatcher_FS2.py 的路径作为绝对路径会更安全,并且您需要确保运行您的 PHP 脚本的用户对其具有权限

    【讨论】:

    • 对不起。不明白我在问什么。如何传递带有变量名的参数以及如何在python中接收。 var1=val1 var2=val2 varN=valN 怎么传应该这样 导入sys print(sys.argv) 接收这样
    • 你的python脚本是否接收到来自sys.argv的输入变量?
    【解决方案2】:

    你必须遍历sys.argv,它是一个列表:

    #!/usr/bin/env python
    import sys
    
    
    def main():
        for a in sys.argv:
            print(a)
    
    
    if __name__ == '__main__':
        main()
    

    对于更详细的参数解析,我建议您查看 Python 的参数解析库;无特殊顺序:

    相关SO问题:What's the best way to parse command line arguments?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      相关资源
      最近更新 更多