nur Dateien anzeigen die mit bestimmtem String anfangen

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
Mister Wing
User
Beiträge: 18
Registriert: Donnerstag 23. August 2007, 08:53
Wohnort: Berlin

Hallo,

wie der Titel schon sagt.

Wie kann ich mir nur Dateien eines Ordners anzeigen lassen, die mit einem bestimmten literal anfangen?
Zum Beispiel:

auto_exec.bat
auto_foo.bat
auto_bar.bat

Die fangen alle mit auto an.

Vielen Dank.

Gruß Oliver
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

So bekommst du ein Verzeichnislisting und kannst den Anfang eines Strings pruefen:

Code: Alles auswählen

>>> import os
>>> os.listdir("/")
['boot', 'media', 'srv', 'mnt', 'var', 'proc', 'sbin', 'root', 'windows', 'vmlinuz', 'dev', 'lib', 'vmlinuz.old', 'sys', 'selinux', 'initrd',  'etc', 'usr', 'lost+found', 'initrd.img.old', 'opt', 'bin', 'initrd.img', 'cdrom', 'tmp', 'home']
>>> "hallo welt".startswith("ha")
True
>>>
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Code: Alles auswählen

import glob
files = glob.glob('/pfad/zum/dir/auto*')
Files enthält dann eine Liste mit Pfadnamen, die mit 'auto' anfangen. Da können allerdings auch Verzeichnisse etc. dabei sein, wenn du nur Dateien haben willst, musst du eben etwas wie

Code: Alles auswählen

import glob
import os
files = [f for f in glob.glob('/pfad/zum/dir/auto*') if os.path.isfile(f)]
benutzen.
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Hallo,

teste das hier mal.

Code: Alles auswählen

import os

print os.getcwd()
x = [ f for f in os.listdir(os.getcwd()) if f.startswith('auto_') and f.endswith('.bat')]
	
for i in x: print i 
Gruss
pyStyler
Antworten