如何截斷字符串不超過50個字節?將字符串截斷爲Python中的特定字節數
a = 'asdfzx안녕하세요awelkjawletjawetr방갑습니다.dlgawklejtwgasdgsdfgd
sdfasdfsdafa궁금해요rewgargasregawergedrhsedhesrdhrthdrfjydjdrktydjdyj'
max = 50byte
a = max(a)
如何截斷字符串不超過50個字節?將字符串截斷爲Python中的特定字節數
a = 'asdfzx안녕하세요awelkjawletjawetr방갑습니다.dlgawklejtwgasdgsdfgd
sdfasdfsdafa궁금해요rewgargasregawergedrhsedhesrdhrthdrfjydjdrktydjdyj'
max = 50byte
a = max(a)
您可以使用getsizeof()
獲得大小,然後把它放在一個if語句來檢查。 getsizeof()
返回bytes.Hope我的例子對象的大小爲您提供了一個想法:
from sys import getsizeof
a = '4200547985984359347509gbrtbhrtbrtbargrefefwefwef'
b = 'hello'
if getsizeof(a.encode('ascii')) > 50 :
print("Error:a")
if getsizeof(b.encode('ascii')) > 50 :
print("Error:b")
對不起,我的英語不好。不是50個字符,我想要50個字節。 –
@PotemPotem哦,看看我更新的答案,這是你可能要找的。 :) – Inconnu
@Achilles這不起作用,python對象的內存表示大小與asker想要知道的大小不同:'getsizeof('a'.encode('ascii'))== 34 '。 – user312016
你可以,如果你使用的每個字節編碼一個字符只使用切片:
a = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
a[:50]
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
注意只有在你寫這個地方纔有意義。如果python對象表示的大小在你的用例中更有意義,那麼@Achilles的答案應該可行。
請更清楚。你想要給定字符串中的前50個字符嗎?請注意,在* text *中討論* bytes *是一種糟糕的形式:隨着Unicode的出現,甚至在此之前,它就已經過時。一個字符可能需要多個字節。 –
爲了給你一個正確的答案,我們需要知道你使用的是什麼版本的Python:Python 2.x或Python 3.x? – KromviellBlack