You can do this:
s3 = boto3.resource('s3')
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == "404":
# The object does not exist.
# Something else has gone wrong.
# The object does exist.
A HEAD request for a single key is done by load(), this is fast even though there is a big object or there are many objects in your bucket.
If you are checking if the object exists so that you can use it, then you just do a get() or download_file() directly instead of load().
You will find out more about the Amazon S3 on AWS S3.