我正在检查 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
谁能帮我解决这个问题?
我试图从一堆文件中获取特定信息。迭代文件列表,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)
我不想删除数组的特定成员/索引,而是删除整个数组本身。谁能告诉我怎么做?
我想为我的 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)