在S3存储桶-Python中对文件和文件夹进行分类

时间:2015-02-11 21:30:49

标签: python amazon-web-services amazon-s3

注意:我知道amazon存储桶没有文件夹的概念,但我为了简单起见使用了这个术语

所以我试图使用boto列出我的s3存储桶中的文件。它的使用相当简单:

for files in bucket.list():
            print files.name

列出了这样的输出

file1
file2
file3
test_folder/file4
test_folder/file5

如何在此处对文件和文件夹进行分类?我只想列出文件,然后只列出文件夹test_folder一次。

寻找这样的事情:

File:s
    file1
    file2
    file3
Folders:
    test_folder

1 个答案:

答案 0 :(得分:1)

听起来你想要压缩包含在文件夹中的所有文件的“Files:”输出(即文件名中带有'/'字符的文件),然后在最后分别打印出不同的文件夹名称。如果是这样,那么这样的事情:

print "Files: "
folders = set()
for files in bucket.list():
  if '/' not in files.name:
    print "\t", files.name
  else:
    folders.add(files.name[:files.name.rfind('/')])

print "Folders: "
for folder in folders:
  print "\t", folder