2017-01-16 3 views
0

J'ai un dossier linux contenant des fichiers multiples:comment passer l'expression régulière en tant que paramètre python

$Files_samples ls 
    Sample_6_5_control1.fastq 
    Sample_6_5_control1_fastqc.html 
    Sample_6_5_control1_fastqc.zip 

et je veux passer mon script python une expression régulière (regex) décrivant certains d'entre eux par exemple

python Syncit.py -I /Files_samples/Sample*

mon code est:

parser = optparse.OptionParser(usage) 
    parser.add_option('-I','--inputPath', help = 'directory or a file to sync' ,dest='inputPath') 
    inputPath=opts.inputPath 
    print inputPath 

mon OU tput serait:

Sample_6_5_control1.fastq 

qui est le premier match trouvé de fichier à l'échantillon *, ce que je veux vraiment est de passer l'argument /Files_samples/Sample* comme chaîne à une utilisation ultérieure avec glob.glob fonction.

pensées?

+1

Bienvenue sur Stackoverflow ! Pour tirer le meilleur parti du site, il est important de poser de bonnes questions. Un guide pour poser des questions est à: http://stackoverflow.com/help/how-to-ask Dans ce cas, vous ne décrivez pas un problème que vous rencontrez. –

+1

'/ Files_samples/Sample *' vous auriez besoin de citer cela pour empêcher le shell de l'étendre – muru

Répondre

0

Je voudrais ajouter un autre argument, appelé modèle, comme ceci:

parser.add_option('--pattern', dest='pat') 

Et puis

inputPath = os.path.join(opts.inputPath, opts.pat) 

Vous pouvez ensuite appeler votre script comme ceci:

python Syncit.py -I /Files_samples --pattern Sample* 
+0

Je n'aurai toujours que le premier fichier pendant que je les cherche tous. linux interprète Sample * à Sample_6_5_control1.fastq quand j'appelle le script: 'python Syncit.py -I/Files_samples --patern Sample *' comme premier – hamaor