2017-01-16 2 views
0

Ich habe einen Linux-Ordner mit mehreren Dateien:wie regulären Ausdruck als Parameter Python passieren

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

und ich möchte, dass meine Python-Skript (regex) einen regulären Ausdruck einige zum Beispiel von ihnen beschreiben passieren

python Syncit.py -I /Files_samples/Sample*

mein Code:

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

mein ou tput wäre:

Sample_6_5_control1.fastq 

das ist die erste Datei gefunden Spiel * Probe, was ich will wirklich das /Files_samples/Sample* Argument als String zu übergeben Verwendung später mit glob.glob Funktion.

Gedanken?

+1

Willkommen bei Stackoverflow ! Um das Beste aus der Seite herauszuholen, ist es wichtig, gute Fragen zu stellen. Eine Anleitung zum Stellen von Fragen finden Sie unter: http://stackoverflow.com/help/how-to-ask In diesem Fall beschreiben Sie kein Problem, das Sie haben. –

+1

'/ Files_samples/Sample *' Sie müssen das angeben, um zu verhindern, dass die Shell es erweitert – muru

Antwort

0

Ich würde ein weiteres Argument hinzufügen, die so genannte Muster, wie folgt aus:

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

Und dann

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

Anschließend können Sie Ihr Skript aufrufen wie folgt:

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

Ich werde immer noch nur die erste Datei haben, während ich nach allen suche. linux interpretiert Sample * zu Sample_6_5_control1.fastq, wenn ich das Skript aufruft: 'python Syncit.py -I/Files_samples --patern Sample *' als erstes – hamaor