在Python中读取最大到一定大小的字符串

在Python中读取最大到一定大小的字符串,python,python-2.7,Python,Python 2.7,我在变量中存储了一个字符串。有没有一种方法可以读取到某个大小的字符串,例如文件对象有f.read(size),它可以读取到某个大小?查看帖子,了解python中的对象大小 如果您希望从开始读取字符串,直到达到某个最大大小,然后返回新字符串(可能较短的字符串),您可能希望尝试以下操作: import sys MAX = 176 #bytes totalSize = 0 newString = "" s = "MyStringLength" for c in s: totalSize

我在变量中存储了一个字符串。有没有一种方法可以读取到某个大小的字符串,例如文件对象有f.read(size),它可以读取到某个大小?

查看帖子,了解python中的对象大小

如果您希望从开始读取字符串,直到达到某个最大大小,然后返回新字符串(可能较短的字符串),您可能希望尝试以下操作:

import sys

MAX = 176 #bytes
totalSize = 0
newString = ""

s = "MyStringLength"

for c in s:
    totalSize = totalSize + sys.getsizeof(c)
    if totalSize <= MAX:
        newString = newString + str(c)
    elif totalSize > MAX:
        #string that is slightly larger or the same size as MAX
        print newString
        break    
导入系统 最大值=176字节 totalSize=0 newString=“” s=“MyStringLength” 对于s中的c: totalSize=totalSize+sys.getsizeof(c) 如果totalSize最大值: #稍大或与MAX相同大小的字符串 印刷新闻串 打破 这将打印小于(或等于)176字节的“MyString”


希望这有帮助。

切片表示法不会溢出字符串:
s='f'*5;t=s[:50]
是的,我想要类似于子字符串的东西,但使用给定的字节大小。您确定要字节而不是字符吗?(别忘了unicode)我想要字符。注意大小以字节为单位基本上我想通过套接字发送一个字符串,所以我需要将我的字符串拆分为块。我们看到您希望“大小”以字符而不是字节为单位。约翰的职位似乎更合适。
message = 'a long string which contains a lot of valuable information.'
bite = 10

while message:
    # bite off a chunk of the string
    chunk = message[:bite]

    # set message to be the remaining portion
    message = message[bite:]

    do_something_with(chunk)