Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python在S3中打开并保存excel文件_Python_Amazon S3 - Fatal编程技术网

使用Python在S3中打开并保存excel文件

使用Python在S3中打开并保存excel文件,python,amazon-s3,Python,Amazon S3,我对excel(xlsx)文件有一些问题。我只想用python代码打开并保存操作。我尝试过python,但找不到 cursor = context.cursor() s3 = boto3.resource('s3') bucket = s3.Bucket('bucket') objects = bucket.objects.all() for obj in objects: if obj.key.startswith('path/filename'): filename=obj.

我对excel(xlsx)文件有一些问题。我只想用python代码打开并保存操作。我尝试过python,但找不到

cursor = context.cursor()
s3 = boto3.resource('s3')

bucket = s3.Bucket('bucket')

objects = bucket.objects.all()
for obj in objects:
  if obj.key.startswith('path/filename'):
    filename=obj.key
    openok=open(obj)
    readok = openok.readlines()
    readok.close()
    print ('file open and close sucessfully')```

据我所知,您不能直接在s3上读取/与文件交互。 我建议在本地下载,然后打开它。如果要将内置tempfile模块保存到临时路径,可以使用该模块

with tempfile.TemporaryDirectory() as tmpdir:
    local_file_path = os.path.join(tmpdir, "tmpfile")
    bucket.download_file(obj.key, local_file_path)
    openok=open(local_file_path)
    readok = openok.readlines()
    readok.close()

据我所知,您不能直接在s3上读取/与文件交互。 我建议在本地下载,然后打开它。如果要将内置tempfile模块保存到临时路径,可以使用该模块

with tempfile.TemporaryDirectory() as tmpdir:
    local_file_path = os.path.join(tmpdir, "tmpfile")
    bucket.download_file(obj.key, local_file_path)
    openok=open(local_file_path)
    readok = openok.readlines()
    readok.close()

这段代码的作用是什么?我只想打开和关闭s3文件夹中的文件。但是为什么要这样做呢?如果你解释你的最终目标,我们可能会提供一个更好的答案。实际上,我们正在使用matillion将xlsx文件从s3加载到红移。我们已经加载了多个文件,最近遇到了一个难题。我们的matillion组件colud没有读取该文件。如果我们下载并打开并保存该文件,它工作得很好。这段代码是做什么的?我只想在s3文件夹中打开并关闭该文件。但为什么要这样做?如果您解释您的最终目标,我们可能会提供更好的答案。实际上,我们正在使用matillion将xlsx文件从s3加载到红移。我们已经加载了多个文件,最近遇到了一个难题。我们的matillion组件colud无法读取该文件。如果我们下载并打开并保存该文件,它工作正常。