2014-01-03 2 views
0

Я пытаюсь перечислить файлы в моем каталоге. Каталог/home/user/Desktop/Test/ Внутри теста есть 3 папки, a, b, c и в каждой из папок a, b, c есть 10 gz файлов, пронумерованных в порядке 1-10Символы печатаются вместо списка dir

import os 
subdir=os.walk("/home/user/Desktop/Test") 
for i in subdir: 
    for dir in i: 
     print dir 

я получаю выход

a 
b 
c 

Я хочу, чтобы получить

1.gz 
2.gz 
3.gz 
4.gz 
5.gz 
6.gz 
7.gz 
8.gz 
9.gz 
10.gz 

Где я неправ?

+0

вы имели в виду, что ' ',' b' и 'c' фактически являются папками? – higuaro

+0

есть. это папки – Jeugasce

ответ

3

Читайте документы. Введя помощь (os.walk), вы найдете этот пример:

import os 
from os.path import join, getsize 

for root, dirs, files in os.walk('python/Lib/email'): 
    print root, "consumes", 
    print sum([getsize(join(root, name)) for name in files]), 
    print "bytes in", len(files), "non-directory files" 
    if 'CVS' in dirs: 
     dirs.remove('CVS') # don't visit CVS directories 

Так что, если вы хотите, чтобы получить список всех файлов в папке, сделайте следующее:

import os 

relative_dirnames = ['a', 'b', 'c'] 
path = '/home/user/Desktop/Test' 
dirs_to_list = [os.path.join(path, s) for s in relative_dirnames] 

for d in dirs_to_list: 
    for _, __, files in os.walk(d): 
     print 'Folder: {}'.format(d) 
     for f in files: 
      print f 
     break 
Смежные вопросы