小编gkr*_*2d2的帖子

发生异常:“s3.ServiceResource”对象没有属性“head_object”

我正在检查 S3 存储桶中是否存在对象。以下是我正在使用的代码片段。 obj是文件名。

    s3 = boto3.resource('s3')
    try:
        s3.head_object(Bucket=bucket_name, Key=obj)
    except ClientError as e:
        return False
Run Code Online (Sandbox Code Playgroud)

但它抛出了我的异常:

An exception occurred in python_code : 's3.ServiceResource' object has no attribute 'head_object'

我用于此 API 的参考 - https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.head_object

谁能帮我解决这个问题?

python amazon-s3 boto3

6
推荐指数
3
解决办法
1万
查看次数

如何在bash脚本中清空数组

我试图从一堆文件中获取特定信息。迭代文件列表,grep满足我的需要。我确信每个grep都会给出 1 个以上的结果,我想将该结果存储在一个数组中。完成特定于文件的工作后,我想从数组中擦除所有内容并重新开始新文件。

files_list=`ls`

for f in $files_list
do
        echo $f
        arr1=`cat $f | grep "abc" | grep "xyz"`
        arr2=`cat $f | grep "pqr" | grep "mno"`
        arr3=`cat $f | grep "df"`
        for ((i=0; i<${#arr1[@]}; ++i)) 
        do
            printf "%s  %s %s\n" "${arr1[i]}" "${arr2[i]}" "${arr3[i]}"
        done
        unset $arr1
        unset $arr2
        unset $arr3
done
Run Code Online (Sandbox Code Playgroud)

所以我曾经unset清空数组,但它给出了错误。

line 49: unset: `x': not a valid identifier
Run Code Online (Sandbox Code Playgroud)

我不想删除数组的特定成员/索引,而是删除整个数组本身。谁能告诉我怎么做?

linux arrays bash shell

4
推荐指数
1
解决办法
8285
查看次数

类型错误:“必需”是位置参数的无效参数

我想为我的 Python3 代码提供可选参数。我在用argparse

def main():

    parser = argparse.ArgumentParser(description="Solution")
    parser.add_argument("size", help="sector size")
    parser.add_argument("name", help="Disk name", required = False)
    args = parser.parse_args()

    sec_size = args.size
    if not args.name :
        print('Will carry only few sets of operations')
    else :
        name = args.name
Run Code Online (Sandbox Code Playgroud)

它给出了错误

Traceback (most recent call last):
  File "pythoncode.py", line 189, in <module>
    main()
  File "pythoncode.py", line 145, in main
    parser.add_argument("name", help="Disk name", required = False)
  File "/usr/lib64/python3.7/argparse.py", line 1335, in add_argument
    kwargs = self._get_positional_kwargs(*args, **kwargs)
  File "/usr/lib64/python3.7/argparse.py", line 1447, in …
Run Code Online (Sandbox Code Playgroud)

python

3
推荐指数
1
解决办法
5458
查看次数

标签 统计

python ×2

amazon-s3 ×1

arrays ×1

bash ×1

boto3 ×1

linux ×1

shell ×1