如何将变量传递给python脚本?

时间:2010-08-08 11:00:08

标签: python

我知道它可以通过命令行实现,但我需要传递至少10个变量,命令行意味着编程过多,因为这些变量可能会传递也可能不会传递。

实际上我已经在vB(用于GUI)中构建了一半应用程序,在python中构建了一半(用于脚本)。我需要将变量传递给python,类似于它的关键字参数,即x = val1,y = val2。有没有办法实现这个目标?

6 个答案:

答案 0 :(得分:9)

如果您使用的是Python< 2.7,我会建议optparse。 不推荐使用optparse,在2.7中你应该使用argparse

它使传递命名参数变得轻而易举。

答案 1 :(得分:4)

你可以做一些有趣的事情,比如把它称为

thepyscript.py "x = 12,y = 'hello world', z = 'jam'"

并在您的脚本中

解析:

stuff = arg[1].split(',')
for item in stuff:
    exec(item) #or eval(item) depending on how complex you get 
#Exec can be a lot of fun :) In fact with this approach you could potentially  
#send functions to your script.
#If this is more than you need, then i'd stick w/ arg/optparse

答案 2 :(得分:3)

由于您使用VB处理Windows,因此值得一提的是IronPython可能是一种选择。由于VB和IronPython都可以通过.NET进行交互,因此您可以在程序集中包装脚本并公开一个使用所需参数调用的函数。

答案 3 :(得分:1)

你看过getopt module了吗?它旨在简化命令行选项的使用。另请参阅Dive Into Python上的示例。

如果您正在使用Python 2.7(而不是更低版本),那么您还可以查看argparse module,这样可以更轻松。

答案 4 :(得分:1)

如果您的脚本未经常调用,则可以使用配置文件。

The .ini style is easily readable by ConfigParser

[Section_1]
foo1=1
foo2=2
foo3=5
...

[Section_2]
bar1=1
bar2=2
bar3=3
...

如果你有大量的变量,这可能是正确的方法。

答案 5 :(得分:0)

你怎么看待创建一个从gui端设置这些变量的python脚本?启动python应用程序时,您只需启动此脚本即可拥有自己的变量。

Execfile