Externes Kommando mit Parametern ausführen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
01detlef
User
Beiträge: 105
Registriert: Montag 10. Mai 2010, 21:59

Hallo,

genau, also es sind in einem Ordner z.b. Dateien mit dem Titeln Datei-1.dat, Datei-2.dat, Datei-3.dat usw.; Die Anzahl solcher Dateien ist unterschiedlich und aus diesem Grund dachte ich an eine while-Schleife. Die Dateien sollen nacheinander geladen werden und ein Satz ersetzt werden. Also der Code von weiter oben soll in der Schleife auch Verwendung finden.

Weisst du, wo das Beispiel ist? Ich konnte es nicht finden.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

In der Doku zu `glob` sollte es Dir schnell ins Auge fallen, wieso man da mit einer `for`-Schleife besser fährt ;-)

Probiere die reine Anwendung von `glob` doch mal aus!
01detlef hat geschrieben: Weisst du, wo das Beispiel ist? Ich konnte es nicht finden.
In der Doku zu `os.walk` steht das Beispiel. Das brauchst Du aber ja nur, wenn Du rekursiv Dateien suchen willst; dann am besten in Kombi mit dem `fnmatch`-Modul für das Ausfiltern der gewünschten Dateinamen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
01detlef
User
Beiträge: 105
Registriert: Montag 10. Mai 2010, 21:59

Hallo,

also ist es möglich, dass ich erstmal mit

Code: Alles auswählen

import glob
glob.glob('*.nc'
alle Dateien auflisten lasse. Soweit okay. Kann man nun sagen, dass man die in einer Liste speichert und dann in einer Schleife (über den Index) aufruft? Weil wenn ich das glob.glob in der Schleife immer Aufrufe, weiss ich nicht, wie "das nächste File" genommen werden kann?!

detlef
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dir fehlen anscheinend die absoluten Grundlagen! Arbeite doch mal das offizielle Tutorial durch; zumindest so weit, dass Du mit den grundlegenden Datenstrukturen vertraut bist.

Zudem kannst Du doch mal in einer Python-Shell (hier IPython) experimentieren:

Code: Alles auswählen

In [17]: from glob import glob

In [19]: glob("*.py")
Out[19]: ['classymenu.py', 'metamenu.py', 'simplemenu.py', 'submenu.py']

In [20]: res = glob("*.py")

In [21]: type(res)
Out[21]: builtins.list

In [23]: for filename in glob("*.py"):
    print("Hier kann ich tolles mit '{}' anstellen.".format(filename))
   ....:     
Hier kann ich tolles mit 'classymenu.py' anstellen.
Hier kann ich tolles mit 'metamenu.py' anstellen.
Hier kann ich tolles mit 'simplemenu.py' anstellen.
Hier kann ich tolles mit 'submenu.py' anstellen.
Wie man in [21] erkennt, gibt `glob.glob` also ein Listen-Objekt zurück. Damit zu hantieren sind absolute Grundlagen! Oder hast Du so eine Schleife wie in [23] noch nie gesehen? Wenn nein, befolge meinen Rat dringendst! ;-)

Benutze immer eine Shell, um erst einmal mit einem Modul vertraut zu werden. Du wirst sicherlich zugeben, dass das jetzt nicht besonders schwierig war, was ich da eingetippt habe, oder?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten