首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python2.7中使用Ruffus库,just_print标志失败

在Python2.7中使用Ruffus库,just_print标志失败
EN

Stack Overflow用户
提问于 2017-01-16 19:18:20
回答 1查看 119关注 0票数 2

我在Python2.7中有一个ruffus管道,但是当我用-n--just_print调用它时,它仍然运行所有实际的任务,而不是像应该打印的那样打印管道。我:

*不要使用取代内置的-n参数(尽管我有其他命令行参数)。

*使用@transform()@merge()装饰器具有一系列功能

*用run_pipeline()调用结束管道

还有其他人经历过这个问题吗?非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-24 17:12:47

在ruffus2.4版中,您可以使用内置ruffus.cmdline,它通过使用argparsecmdline.py模块存储适当的标志,例如:

代码语言:javascript
复制
from ruffus import *
parser = cmdline.get_argparse(description='Example pipeline')
options = parser.parse_args()

@originate("test_out.txt")
def run_testFunction(output):
        with open(output,"w") as f:
            f.write("it's working!\n")

cmdline.run(options)

然后使用如下命令从终端运行管道:

代码语言:javascript
复制
python script.py --verbose 6 --target_tasks run_testFunction --just_print

如果您想手动执行此操作(对于旧版本的ruffus来说这是必需的),您可以调用pipeline_printout()而不是pipeline_run(),使用argparse,以便--just_print标志导致适当的调用,例如:

代码语言:javascript
复制
from ruffus import *
import argparse
import sys

parser = argparse.ArgumentParser(description='Example pipeline')
parser.add_argument('--just_print', dest='feature', action='store_true')
parser.set_defaults(feature=False)
args = parser.parse_args()

@originate("test_out.txt")
def run_testFunction(output):
        with open(output,"w") as f:
            f.write("it's working!\n")

if args.feature:
    pipeline_printout(sys.stdout, run_testFunction, verbose = 6)
else:
    pipeline_run(run_testFunction, verbose = 6)

然后运行以下命令:

代码语言:javascript
复制
python script.py --just_print
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41683560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档