Seite 1 von 1

nur Dateien anzeigen die mit bestimmtem String anfangen

Verfasst: Donnerstag 6. September 2007, 09:56
von Mister Wing
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

Verfasst: Donnerstag 6. September 2007, 10:12
von Rebecca
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
>>>

Verfasst: Donnerstag 6. September 2007, 10:24
von Trundle

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.

Verfasst: Donnerstag 6. September 2007, 12:00
von pyStyler
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