【问题标题】:cStringIO, reading bytes in chunks until EOF?cStringIO,读取块中的字节直到EOF?
【发布时间】:2012-08-24 09:49:07
【问题描述】:

我想一次读取一个 1MB 的字符串,然后通过 XMLRPC 上传,这是最好的方法吗?有什么需要注意的吗?

while data.read(1048576) != None:
    data.seek(1048576, 1)
    if not rpc_srv.chunk_upload(tf_uuid, data_chunk):
        raise Exception('Failed to upload data.')

【问题讨论】:

    标签: python xml-rpc


    【解决方案1】:

    您可以使用带有标记的iter() function 来简化您的循环:

    for data_chunk in iter(lambda: data.read(1048576), ''):
        if not rpc_srv.chunk_upload(tf_uuid, data_chunk):
            raise Exception('Failed to upload data.')
    

    不需要.seek().read() 调用已经更新了位置。

    【讨论】:

    • 实施此操作后,我开始收到“内存错误”
    • @Jharwood:创建一个带有完整回溯的新问题。例如,这可能是其他地方完全不相关的问题,或者可能是您的 cStringIO 实例的大小。
    猜你喜欢
    • 2015-10-20
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多