我试图从S3 Bucket" card-prtnr-npi"列出文件。我想要阅读的文件位于" ambs_ambivolatile"在S3" card-prtnr-npi"中存在的文件夹桶。这是实际路径" card-prtnr-npi / users / rtltest / ambs_ambivolatile"。 " ambs_ambivolatile"文件夹中只有一个文件但Boto 3正在读取一个不存在的附加文件。
'用户/ rtltest / ambs_ambivolatile /'文件夹中没有,只有part-m-00026.bz2'存在。请参阅以下代码。
[' users / rtltest / ambs_ambivolatile /',' users / rtltest / ambs_ambivolatile / part-m-00026.bz2']
s3_src_bucket = 'card-prtnr-npi'
s3_src_prefix = 'users/rtltest/ambs_ambivolatile/'
print("getting response from source")
source_bucket = src_session.resource('s3').Bucket(s3_src_bucket)
files = source_bucket.objects.filter(Prefix=s3_src_prefix)
source_keys = []
for file in files:
source_keys.append(file.key)
print(source_keys)
以上print语句打印以下列表 [' users / rtltest / ambs_ambivolatile /',' users / rtltest / ambs_ambivolatile / part-m-00026.bz2']
如何停止阅读此额外文件' users / rtltest / ambs_ambivolatile /'。
答案 0 :(得分:1)
它不是文件,而是您设置的前缀。 S3没有文件夹的概念。每个文件路径都是一个字符串,并为您的开头进行了过滤
尝试此操作以排除前缀
source_keys = [file.key for file in files if file.key!=s3_src_prefix]