Seite 1 von 1

Anfänger mit File I/O Fragen

Verfasst: Donnerstag 11. Dezember 2008, 16:20
von sublist
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

Verfasst: Donnerstag 11. Dezember 2008, 17:16
von derdon
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:

Verfasst: Donnerstag 11. Dezember 2008, 17:40
von BlackJack
@sublist: Am besten nochmal die Doku zu `os.walk()` lesen -- Du hast den Verzeichnisnamen ja schon.

Verfasst: Freitag 12. Dezember 2008, 10:18
von sublist
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!

Verfasst: Freitag 12. Dezember 2008, 13:05
von cofi
Da das Problem gelöst ist, werfe ich mal PEP 8 ein ;)
http://www.python.org/dev/peps/pep-0008/