在Python中读取最大到一定大小的字符串
我在变量中存储了一个字符串。有没有一种方法可以读取到某个大小的字符串,例如文件对象有f.read(size),它可以读取到某个大小?查看帖子,了解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
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)