Zrobiłbym to jak poniżej. Powodem jest to, że teraz możesz oddzielać tworzenie wzorca wyszukiwania, wyszukiwanie i przechowywanie plików. Łatwiej jest się rozwinąć, jeśli nie są ze sobą powiązane.
Jeśli twój system jest nieco egzotyczny (na przykład rozproszony dysk sieciowy), linia z globem i os.path.join jest nieprzyjemną linią. Chociaż, jak wspomnieli inni, dwie pętle są idealnie w porządku.
filename = ['a.txt', 'b.txt', 'c.txt']
searchPatterns = [os.path.join(source_path, files) for files in filename]
searchResults = [glob.glob(pattern) for pattern in searchPatterns]
fileListFlat = sum(searchResults,[])
for file in fileListFlat:
print file
Najpierw polecam, aby naprawdę tego potrzebować. Na przykład przewodnik w stylu Pythona sugeruje, że Twój kod jest w porządku (tutaj jest część o [zrozumieniu list] (http://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone=List_Comprehensions#List_Comprehensions), funkcje lambda są poniżej). – Tony