
Diesmal mit einer Frage zu einer Suchfunktion. Und zwar benutze ich zu diesem Zweck re.match. Das entsprechende __doc__ ist nicht besonders aufschlussreich - woher bekomme ich denn noch informationen zur verwendung eines Moduls (wenn nicht aus diesem Forum

Ich poste mal eben das komplette Script:
Code: Alles auswählen
#!/usr/bin/python
# -*- encoding: latin-1 -*-
import os, re
def archive():
cd_drive = raw_input("CD-Laufwerk: ")
cd_name = raw_input("Name der CD: ")
data = file("cd_database.txt","a")
backup = file("%s.txt" % cd_name, "a")
for paths, dirs, files in os.walk(cd_drive):
for fil in files:
data.write("%s ||%s ||%s || \n" % (fil, cd_name, paths))
backup.write("%s ||%s ||%s || \n" % (file, cd_name, paths))
data.close()
backup.close()
print "Archivierung von %s abgeschlossen!" % cd_name
start()
def search(files, cd_names, paths):
searchstring = raw_input("Suchbegriff (z.B. .*suchbegriff.*): ")
pattern = re.compile(searchstring)
file_oder_dir = input("""\n 1: Suche Datei \n 2: Suche Verzeichnis \n\n Auswahl: """)
if file_oder_dir == 1:
for i, element in enumerate(files):
if pattern.match(element):
print "%s %s %s" % (cd_names[i], files[i], paths[i])
elif file_oder_dir == 2:
tempdirs = []
temp_cds = []
for i, element in enumerate(paths):
if pattern.match(element):
if not element in tempdirs:
tempdirs.append(element)
temp_cds.append(cd_names[i])
for a, dirs in enumerate(tempdirs):
print "%s %s" % (temp_cds[a], dirs)
frage = input("""\n 1: neue Suche \n 2: Hauptmenü \n 3: beenden \n\n Auswahl: """)
if frage == 1:
search(files, cd_names, paths)
elif frage == 2:
start()
elif frage == 3:
print ""
print "beende Programm... Selbstzerstörung aktiviert..."
print ""
else:
print ""
print "1, 2 oder 3 !"
print "------"
start()
def search_archive():
data = open("cd_database.txt", "r")
files = []
cd_names = []
paths =[]
for line in data.readlines():
file, cd_name, path, eol = line.split('||')
files.append(file)
cd_names.append(cd_name)
paths.append(path)
data.close()
search(files, cd_names, paths)
def start():
auswahl = input("""\n 1: Neue CD archivieren \n 2: Archiv durchsuchen \n 3: Beenden \n\n Auswahl: """)
if auswahl == 1:
archive()
elif auswahl == 2:
search_archive()
elif auswahl == 3:
print ""
print "beende Programm... Selbstzerstörung aktiviert..."
print ""
else:
print ""
print "1, 2 oder 3 !"
print "------"
start()
if __name__== '__main__':
start()

Wiedereinmal Fragen über Fragen
Ach ja, eine hab ich noch: ab wann werden csv eigentlich zu lang, oder besser, ab welcher größe schaut man sich besser nach einer alternativen Datenspeichermethode um??
thx