15 Stimmen

python's glob liefert nur das erste Ergebnis

Ich bin in dieser Frage wirklich ratlos.

Ich habe einen einfachen Python-Wrapper, der etwa so aussieht:

import glob

for found in glob.glob(filename):
  if not os.path.isdir(found):
    my_module.do_stuff(found)

wobei filename ist eingelesen worden von sys.argv .

Wenn ich versuche glob in einer interaktiven Shell oder einem Hallo-Welt-Skript erhalte ich die vollständige Liste der (in diesem Fall 5) Dateien. Wenn ich sie jedoch in diesem Kontext verwende, erhalte ich nur die erste (alphabetisch geordnete) Datei.

Ich habe das überprüft, indem ich das Ergebnis von glob.glob in einem Array und sicher genug, es hat nur eine len() von 1, auch wenn der Dateiname nur '*' .

Was könnte ich denn tun, dass das kaputt geht? glob ?!

Vollständige Codedatei, nur für den Fall, dass Sie meinen Fehler erkennen können:

#! /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)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X