1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
.. include:: ../../global.inc
.. include:: manual_chapter_numbers.inc
.. _new_manual.mkdir.code:
############################################################################################################################################################################################################
|new_manual.mkdir.chapter_num|: Python Code for Preparing directories for output with :ref:`@mkdir() <decorators.mkdir>`
############################################################################################################################################################################################################
.. seealso::
* :ref:`Manual Table of Contents <new_manual.table_of_contents>`
* :ref:`mkdir() <decorators.mkdir>` syntax
* :ref:`formatter() <decorators.formatter>` syntax
* :ref:`regex() <decorators.regex>` syntax
* Back to |new_manual.mkdir.chapter_num|: :ref:`Preparing directories for output with @mkdir() <new_manual.mkdir>`
****************************************************************************************************************
Code for :ref:`formatter() <decorators.formatter>` Zoo example
****************************************************************************************************************
.. code-block:: python
from ruffus import *
# Make directories
@mkdir(["tiger", "lion", "dog", "crocodile", "rose"])
@originate(
# List of animals and plants
[ "tiger/mammals.wild.animals",
"lion/mammals.wild.animals",
"lion/mammals.handreared.animals",
"dog/mammals.tame.animals",
"dog/mammals.wild.animals",
"crocodile/reptiles.wild.animals",
"rose/flowering.handreared.plants"])
def create_initial_files(output_file):
with open(output_file, "w") as oo: pass
# create directories for each clade
@mkdir( create_initial_files, # Input
formatter(".+/(?P<clade>\w+).(?P<tame>\w+).animals"), # Only animals: ignore plants!
"{subpath[0][1]}/{clade[0]}") # new_directory
# Put different animals in different directories depending on their clade
@transform(create_initial_files, # Input
formatter(".+/(?P<clade>\w+).(?P<tame>\w+).animals"), # Only animals: ignore plants!
"{subpath[0][1]}/{clade[0]}/{tame[0]}.{subdir[0][0]}.food", # Replacement
"{subpath[0][1]}/{clade[0]}", # new_directory
"{subdir[0][0]}", # animal_name
"{tame[0]}") # tameness
def feed(input_file, output_file, new_directory, animal_name, tameness):
print "%40s -> %90s" % (input_file, output_file)
# this works now
open(output_file, "w")
pipeline_run(verbose=0)
****************************************************************************************************************
Code for :ref:`regex() <decorators.regex>` Zoo example
****************************************************************************************************************
.. code-block:: python
from ruffus import *
# Make directories
@mkdir(["tiger", "lion", "dog", "crocodile", "rose"])
@originate(
# List of animals and plants
[ "tiger/mammals.wild.animals",
"lion/mammals.wild.animals",
"lion/mammals.handreared.animals",
"dog/mammals.tame.animals",
"dog/mammals.wild.animals",
"crocodile/reptiles.wild.animals",
"rose/flowering.handreared.plants"])
def create_initial_files(output_file):
with open(output_file, "w") as oo: pass
# create directories for each clade
@mkdir( create_initial_files, # Input
regex(r"(.*?/?)(\w+)/(?P<clade>\w+).(?P<tame>\w+).animals"), # Only animals: ignore plants!
r"\g<clade>") # new_directory
# Put different animals in different directories depending on their clade
@transform(create_initial_files, # Input
regex(r"(.*?/?)(\w+)/(?P<clade>\w+).(?P<tame>\w+).animals"), # Only animals: ignore plants!
r"\1\g<clade>/\g<tame>.\2.food", # Replacement
r"\1\g<clade>", # new_directory
r"\2", # animal_name
"\g<tame>") # tameness
def feed(input_file, output_file, new_directory, animal_name, tameness):
print "%40s -> %90s" % (input_file, output_file)
# this works now
open(output_file, "w")
pipeline_run(verbose=0)
|