Anfänger mit File I/O Fragen

Code-Stücke können hier veröffentlicht werden.
Antworten
sublist
User
Beiträge: 33
Registriert: Donnerstag 11. Dezember 2008, 16:04

Hallo.

Bin gerade dabei Python zu lernen. Gefällt mir auch ganz gut soweit.

Ich versuche gerade ein Script zu schreiben, was nach einem best. Filenamen sucht.
Klappt auch alles soweit.

Jetzt brauche ich aber auch noch das Directory von der gefundenen Datei.

Was ich soweit habe...

Code: Alles auswählen

import os,fnmatch, shutil

searchPath = "E:/bla/bla/bla/bla/"
searchName = "*wurst*"
searchExt = ".*"
destPath = "E:/Temp/"
origDir = []

foundFiles_Names = []


for root, dirs, files in os.walk(searchPath):
	for each in files:
		if fnmatch.fnmatch (each, (searchName + searchExt)):
			foundFiles_Names.append(each)
			#HIER MUSS ICH DAS DIR DES FILES AUSLESEN UND FÜR SPÄTER SPEICHERN

foundFiles_Count = len(foundFiles_Names)

print (foundFiles_Names)


#shutil.copy (searchPath + foundFiles_Names[0] + dirs[0], destPath + foundFiles_Names[0])
Danke schonmal....
Gruß
Guido
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Benutze das os.path-Modul für Pfadangaben u.ä und das tempfile-Modul für temporäre Dateien / Verzeichnisse.

Bei deinem Problem wird dir os.path weiterhelfen, welche Funktion du brauchst verrate ich aber nicht :wink:
BlackJack

@sublist: Am besten nochmal die Doku zu `os.walk()` lesen -- Du hast den Verzeichnisnamen ja schon.
sublist
User
Beiträge: 33
Registriert: Donnerstag 11. Dezember 2008, 16:04

Ja klar... steht ja schon alles da.

Code: Alles auswählen

for root, dirs, files in os.walk(searchPath):
	for each in files:
		if fnmatch.fnmatch (each, (searchName + searchExt)):
			foundFiles_Names.append(each)
			foundDirs_Names.append(root)
Danke!
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Da das Problem gelöst ist, werfe ich mal PEP 8 ein ;)
http://www.python.org/dev/peps/pep-0008/
Antworten