2016-09-11 5 views
1

У меня проблема с использованием os.walk на Mac. Если я назову его с python terminal, он отлично работает, но если я его вызову через python script, он вернет пустой список. Например:python os.walk ничего не возвращает

import os 

    path = "/Users/temp/Desktop/test/" 
    for _ ,_ , files in os.walk(path): 
     test = [my_file for my_file in files] 

    print test 

затем печатает:

[] 

и я уверен, что path делает существует. Любая идея, в чем проблема?

+0

похоже, что вам не хватает s в вашем понимании списка. 'test = [my_file для my_file в файлах]' – miah

+0

Попробуйте абсолютный путь вместо относительного пути –

+0

@miah: К сожалению, это опечатка, это правильно в моем коде – user2308191

ответ

1

Вам, скорее всего, нужно будет изучить список тестов вне цикла for, чтобы это работало.

import os 

path = "/Users/temp/Desktop/test/" 
test = [] 
for _ ,_ , files in os.walk(path): 
    test.extend([my_file for my_file in files]) 

print test 
+1

Большое спасибо, он работает сейчас !, зачем мне использовать 'extend'? – user2308191

+0

[extend] (https://docs.python.org/2/tutorial/datastructures.html) добавляет все элементы в список в другой список – miah