Sono davvero inciampato su questo.python's glob restituisce solo il primo risultato
Ho un semplice involucro di pitone che sembra qualcosa di simile:
import glob
for found in glob.glob(filename):
if not os.path.isdir(found):
my_module.do_stuff(found)
dove filename
sono stati letti da sys.argv
.
Quando provo glob
in una shell interattiva o uno script Hello World, ottengo l'elenco completo dei file (in questo caso 5). Tuttavia, quando lo uso in questo contesto, ottengo solo il primo (in ordine alfabetico).
Ho controllato catturando il risultato di glob.glob
in un array e abbastanza sicuro, è ottenuto solo un len()
di 1, anche se il nome del file è solo '*'
.
Cosa potrei fare in caso di interruzione glob
?!
file di codice completa, nel caso in cui è possibile individuare la mia Gotcha:
#! /usr/bin/python
import pynet.quadrons as q
import os, glob
def print_usage():
print """
(blah blah big long string.)
"""
if __name__ == "__main__":
import sys
if len(sys.argv) < 2:
print_usage()
exit()
filename = ''
try:
filename = sys.argv[1]
except:
print "error parsing arguments."
print_usage()
exit()
for found in glob.glob(filename):
if not os.path.isdir(found):
q.load_and_analyse_file(found)
di poter postare un campione 'sys.argv'? – Blender
Per favore pubblica un esempio: mostra il contenuto della cartella e il pattern che usi non funziona – gecco