如何将大型python对象分割成更小的块

时间:2015-10-09 06:30:29

标签: python

我有一个大小约为3MB的python-string对象。我需要将这些数据存储在aerospike中,我正在使用llist。现在问题是 - llist的个别元素不能超过特定限制 - 200Kb。有没有办法将python字符串或byteArray拆分成特定大小的较小块?

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用StringIO读取字符串的块:

import random
import string
data = ''.join(random.choice(string.ascii_uppercase) for i in range(100))

from io import StringIO

s = StringIO(data)
chunk = s.read(20)  # Set to 200KB
while chunk:
    print(chunk)    # Do something with chunk
    chunk = s.read(20)

输出:

BLAJHKDTRGALQUXHGVDR
MAQZTBARFZTYVVCNSSIR
NULVQTZFFLXEBHBLOJRR
PFEDLOSDSRHAYYXLAYBV
KSXPMGHDFJDLHGYEEWKD

答案 1 :(得分:1)

你究竟想做什么?

考虑以下代码:

s="string"

list(s)将产生['s','t','r','i','n','g']

您还可以通过循环遍历字符串来获取单个字符:

for x in s:
   print x

如果你想将字符串拆分成较小的字符串,大于单个字符,你可以这样做。

L=[]
n=5 #length of each string
for i in xrange(0,len(s),n):
    L.append(s[i:i+n])

这会将s分成几个长度为n的小字符串。