testList.remove[not "1"]
Verfasst: Freitag 29. Juli 2011, 08:05
Hallöle,
ich habe eine liste mit ca. 1600 Einträgen (Ordnernamen), wovon ich alle diejenigen löschen möchte, die einen bestimmten String NICHT enthalten.
Der folgende Code funktioniert natürlich leider nicht:
Mir fallen 2 Möglickeiten ein, Beide benötigen mir aber zu lange, wodurch es immer so aussieht, als wenn das Program für 7sec stecken geblieben ist, denn genau so lange dauert es (bei Beiden Versionen), bis die Elemente aussortiert sind:
Ich hab natürlich auf C:\ keine 1600 Ordner ... ist nur für hier, damit der Code funktioniert. Der Ordner, den ich allerdings durchsuche HAT ca. 1650 Ordner.
Version 1:
Version 2:
Gibts also eine einfache uns vor allem schnelle Möglichkeit aus einer riesigen Liste unwanted Einträge zu entfernen?
ich habe eine liste mit ca. 1600 Einträgen (Ordnernamen), wovon ich alle diejenigen löschen möchte, die einen bestimmten String NICHT enthalten.
Der folgende Code funktioniert natürlich leider nicht:
Code: Alles auswählen
testList = ["1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3"]
testList.remove[not "1"]Ich hab natürlich auf C:\ keine 1600 Ordner ... ist nur für hier, damit der Code funktioniert. Der Ordner, den ich allerdings durchsuche HAT ca. 1650 Ordner.
Version 1:
Code: Alles auswählen
import os
sourceFolder="C:\\"
mask = "xyz"
rootElements = os.listdir(sourceFolder)
rootElements2 = []
for i in rootElements:
if (i.find(mask) >= 0):
rootElements2.append(i)Code: Alles auswählen
import os, re
sourceFolder="C:\\"
mask = "x"
rootElements = os.listdir(sourceFolder)
pattern = re.compile(mask)
rootElements2 = []
for i in rootElements:
if pattern.search(i):
rootElements2.append(i)