在python2.7中使用Ruffus库时,just\u print标志失败

2024-04-18 13:08:14 发布

您现在位置:Python中文网/ 问答频道 /正文

在python2.7中我有一个ruffus管道,但是当我用-n--just_print调用它时,它仍然运行所有实际的任务,而不是像应该的那样打印管道。一:
*不要用-n参数取代内置参数(尽管我有其他命令行参数)
*有一堆带有@transform()@merge()修饰符的函数
*用run_pipeline()调用结束管道

还有其他人遇到过这个问题吗?非常感谢!你知道吗


Tags: 函数run命令行参数管道pipelinetransformmerge
1条回答
网友
1楼 · 发布于 2024-04-18 13:08:14

从ruffus版本2.4开始,您可以使用内置的^{},它通过使用argparsecmdline.py模块存储适当的标志,例如:

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)

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

python script.py  verbose 6  target_tasks run_testFunction  just_print

如果您想手动执行此操作(这对于较旧版本的ruffus是必需的),则可以调用^{}而不是^{},使用argparse,以便 just_print标志引导相应的调用,例如:

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)

然后您可以像这样运行命令:

python script.py  just_print

相关问题 更多 >