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
将特定文件从S3子文件夹导入Python_Python_Amazon S3_Boto - Fatal编程技术网

将特定文件从S3子文件夹导入Python

将特定文件从S3子文件夹导入Python,python,amazon-s3,boto,Python,Amazon S3,Boto,我正在使用boto库将数据从S3导入python,具体操作如下: 下面的代码允许我将主文件夹中的所有文件导入python,但是替换c.get_bucket('mainfolder/subfolder')不起作用。有人知道我如何访问子文件夹并导入其内容吗 import boto c = boto.connect_s3() b = c.get_bucket('mainfolder') 连接上的get_bucket方法返回一个bucket对象。要访问该存储桶中的单个文件或目录,您需要使用文件路径创建

我正在使用boto库将数据从S3导入python,具体操作如下:

下面的代码允许我将主文件夹中的所有文件导入python,但是替换c.get_bucket('mainfolder/subfolder')不起作用。有人知道我如何访问子文件夹并导入其内容吗

import boto
c = boto.connect_s3()
b = c.get_bucket('mainfolder')

连接上的
get_bucket
方法返回一个
bucket
对象。要访问该存储桶中的单个文件或目录,您需要使用文件路径创建一个
Key
对象,或者使用
bucket。使用文件夹路径列出\u Key
,以获取该路径下文件的所有密钥。每个
对象都充当存储文件的句柄。然后调用键上的函数来操作存储的文件。例如:

import boto

connection = boto.connect_s3()
bucket = connection.get_bucket('myBucketName')

fileKey = bucket.get_key('myFileName.txt')
print fileKey.get_contents_as_string()

for key in bucket.list('myFolderName'):
    print key.get_contents_as_string()
这里的示例只是打印出每个文件的内容(这可能是个坏主意!)。根据您要对文件执行的操作,您可能需要将其下载到临时目录,或将其读取到变量等。有关如何使用键的文档,请参阅。

要浏览子文件夹,请使用“result\u set=bckt\u obj.list(s3\u路径,分隔符='/')”它将返回结果集对象,然后您可以迭代此结果集以获取子文件夹。