[Python] How to delete multiple files and specific pattern in S3 boto3

Discussão em 'Python' iniciado por Stack, Junho 21, 2025.

  1. Stack

    Stack Membro Participativo

    Can Python delete specific multiple files in S3?

    I want to delete multiple files with specific extensions.

    This script removes all files.

    These are the various specific files that I want to delete:

    XXX.tar.gz
    XXX.txt


    ** Current code: ** (all files deleted)

    import boto3

    accesskey = "123"
    secretkey = "123"
    region = "ap-northeast-1"

    s3 = boto3.resource ('s3', aws_access_key_id = accesskey, aws_secret_access_key = secretkey, region_name = region)

    bucket = s3.Bucket ('test')
    files = [os.key for os in bucket.objects.filter (Prefix = "myfolder / test /")]
    tar_files = [file to file in files if file.endswith ('tar.gz')]

    #print (f'All files: {files} ')
    #print (f'CSV files: {csv_files} ')

    objects_to_delete = s3.meta.client.list_objects (Bucket = "test", Prefix = "myfolder / test /")

    delete_keys = {'Objects': []}
    delete_keys ['Objects'] = [{'Key': tar_files} for tar_files in [obj ['Key'] for obj in objects_to_delete.get ('Content', [])]]

    s3.meta.client.delete_objects (Bucket = "test", Delete = delete_keys)



    If anyone knows, please let me know.

    Continue reading...

Compartilhe esta Página