我试图找到答案,但却空了。我尝试在Python中使用os.walk()
,但即使我在目录中有文件,它也会返回空列表。文件夹结构是:
↳Photos
↳fold1
↳ file1.jpg
↳ file1.nef
↳fold2
↳subfold1
↳ file2.jpg
↳ file2.jpg
↳ file2.nef
我的代码现在非常简单(不介意现在创建dirs_path,它按预期工作):
class PhotosCleanup(object):
def __init__(self):
super(PhotosCleanup, self).__init__()
def create_dirs_list(self):
for root, directories, filenames in os.walk(top='Photos'):
dirs_path = [os.path.join(root, dp) for dp in directories]
print dirs_path
pc = PhotosCleanup()
pc.create_dirs_list()
但filenames变量为空。我做错了什么?
编辑:更新了代码段。
EDIT2:好的,我忘了粘贴这个脚本的实际结果:
['Photos\\fold1', 'Photos\\fold2']
['Photos\\fold1\\Obrobione']
[]
[]
答案 0 :(得分:0)
确保您的脚本文件和Photos
文件夹位于同一目录中,或者您可以使用:
print __file__
获取当前文件夹。
我认为您使用了错误的相对路径。您也可以尝试使用绝对路径。实际上,代码运行良好。
答案 1 :(得分:-1)
你从未给过任何文件夹位置,你说的只是top =文件夹,这对于os.walk来说是不够的。
os.walk(顶部='照片'),在此添加一些地址,它有效。