2013-10-11 16 views
6

Dizindeki tüm dosyaların bir listesini, dizin içermeyen, tekrarlı olarak almak istiyorum.Özür dilerim os.listdir?

~/files dizini "a.txt", "b.txt" ile ve "c" dizininin içinde "d.txt" ve "e" harfleriyle ve "f.txt" ifadesinin e içinde olduğunu varsayalım. ['/home/user/files/a.txt', '/home/user/files/b.txt', '/home/user/files/c/d.txt', '/home/user/files/c/e/f.txt'] gibi görünen bir listeyi nasıl alırdım?

+0

d.txt' ve 'sen yoksun belirtilen f.txt'' yolları, yani ... – roippi

+0

@roippi sabit, teşekkür aşağıdaki ikinci yanıta bakın ve sadece kaldırmak – tkbx

+0

print dir_names http://stackoverflow.com/questions/4918458/how-to-traverse-through-the-files-in-a-directory – davecom

cevap

22
import os 
[os.path.join(dp, f) for dp, dn, fn in os.walk(os.path.expanduser("~/files")) for f in fn] 
+4

Değiştirin "~ ~/files "' ile birlikte os.path.expanduser ("~/files") '. Aksi takdirde, ev dizini yerine literal '~' dizinini bulur. – falsetru

+0

@falsetru, iyi nokta. Teşekkürler –

İlgili konular