从文件中读取并写入StringIO - Python

7

我正在使用Box Python API编写一些工具。其中一个工具是将文件上传到Box。他们使用StringIO作为对象文件。 我需要读取本地文件并将其内容写入StringIO缓冲区,然后将其传递给Box API,如下所示:

def upload_file(self, filename, folder_id='0'):
    assert self.client is not None
    try:
        stream = StringIO.StringIO()
        # replace this line a file read
        stream.write('Box Python SDK Test!')
        stream.seek(0)
        box_file = self.client.folder(folder_id=folder_id).upload_stream(
                                                        stream, filename,
                                                        preflight_check=True)
        return box_file.name
    except BoxAPIException, e:
        self.log.exception(e)

很简单,我如何从本地文件中读取内容,并将其写入到 StringIO 缓存中?


1
如果你真的需要一个StringIO(可能文件对象就可以),只需执行stream.write(open(filename).read()) - tdelaney
1个回答

5

您应该能够提供一个开放的文件,而不是StringIO实例。以下代码可以完成此操作:

stream = open('mylocal_file')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接