我正在尝试使用处理来自可迭代对象的数据的第三方实用程序,例如队列或文件。我需要通过此实用程序推送一堆AWS S3文件。每一个都是一个包含JSON消息的文本文件,每行一条完整的消息。
一种方法是使用key.get_contents_to_filename()
制作每个文件的本地副本,然后打开本地文件进行读取并将文件对象传递给实用程序,然后在完成后删除本地副本。但我试图避免在本地下载文件,而是宁愿直接从S3读取。是否可以直接从S3键创建可迭代对象?
答案 0 :(得分:0)
有一种key.get_contents_as_string
方法可能 加载到io.StringIO
或io.BytesIO
。
>>> import io
>>> bt = io.BytesIO('abc\ndef\nghi')
>>> st = io.StringIO(u'abc\ndef\nghi')
>>> for thing in st:
print thing
abc
def
ghi
>>> for thing in bt:
print thing
abc
def
ghi
>>>