如何将参数传递给Luigi?如果我有一个名为FileFinder.py的python文件,其中有一个名为getFIles的类:
class getFiles(luigi.Task):
我想把一个目录传递给这个类,比如:
C://Documents//fileName
然后在我的run方法中使用这个参数
def run(self):
如何在命令行中运行此命令并添加参数以在代码中使用?我习惯于在命令行中运行此文件,如下所示:
python FileFinder.py getFiles --local-scheduler
在代码中添加什么来使用参数,以及如何将该参数添加到命令行参数?
另外,作为这个问题的扩展,我如何使用多个参数?或者不同数据类型的参数,如字符串或列表?
添加到Toterrich的答案中。
将字符串参数列表作为ListParameter()传递时:
字符串参数必须用双引号括起来,不能用单引号括起来,否则会导致JSONParsing错误。
你已经知道了,你可以通过
在命令行中。在代码中,必须通过实例化
Parameter
类或其子类之一来声明这些变量。子类用于告诉luigi变量是否具有非字符串的数据类型。下面是一个使用两个命令行参数的示例,一个是Int
,另一个是List
:请注意,listparam实际上是由luigi转换成元组的,因此如果要对它们执行列表操作,必须首先将它们转换回原来的位置(这是一个known issue,但看起来不会很快修复)。
您可以通过这样的命令行调用上面的模块(我将代码保存为一个名为“testmodule.py”的文件,并从同一目录中进行调用):
注意,对于包含
_
的变量,必须用-
替换。 呼叫产生(以及许多状态消息):所以我认为这是可行的,在我添加的代码中:
如果在命令行中运行此命令:
但是如果有人对不同类型的参数以及如何使用它们有任何建议,特别是数字和列表,请告诉我。
相关问题 更多 >
编程相关推荐