代码之家  ›  专栏  ›  技术社区  ›  sklal

在Python中从S3存储桶读取xml文件——只存储最后一个文件的内容

  •  0
  • sklal  · 技术社区  · 2 年前

    S3 bucket目录中有4个XML文件。当我试图读取所有文件的内容时,我发现只有最后一个文件(XML4)的内容被存储。

    s3_bucket_name='test'
    bucket=s3.Bucket(s3_bucket_name)
    bucket_list = []
    for file in bucket.objects.filter(Prefix = 'auto'):
        file_name=file.key
        if file_name.find(".xml")!=-1:
            bucket_list.append(file.key)
    

    在“bucket_列表”中,我可以看到有4个文件

    for file in bucket_list:
        obj = s3.Object(s3_bucket_name,file)
        data = (obj.get()['Body'].read())
        
        
    tree = ET.ElementTree(ET.fromstring(data))
    

    为了读取所有XML文件的内容,应该对代码进行哪些更改?

    1 回复  |  直到 2 年前
        1
  •  1
  •   ewokx    2 年前

    如前所述,由于您有一个文件列表,因此需要相应的树列表。

    tree_list = []
    
    for file in bucket_list:
        obj = s3.Object(s3_bucket_name,file)
        data = (obj.get()['Body'].read())
        tree_list.append(ET.ElementTree(ET.fromstring(data)))
    
    

    然后你就可以开始使用 tree_list 不管出于什么目的。