在 S3 存储桶中的文件和文件夹之间分类 -Python
Classify between files and fodler in S3 bucket -Python
注意:我知道amazon buckets没有文件夹的概念,但为了简单起见,我使用这个术语
所以我正在尝试使用 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
听起来您想抑制文件夹中包含的所有文件(即文件名中带有“/”字符的文件)的 "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
注意:我知道amazon buckets没有文件夹的概念,但为了简单起见,我使用这个术语
所以我正在尝试使用 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
听起来您想抑制文件夹中包含的所有文件(即文件名中带有“/”字符的文件)的 "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