2016-12-03 54 views
-1

如何截斷字符串不超過50個字節?將字符串截斷爲Python中的特定字節數

a = 'asdfzx안녕하세요awelkjawletjawetr방갑습니다.dlgawklejtwgasdgsdfgd 
sdfasdfsdafa궁금해요rewgargasregawergedrhsedhesrdhrthdrfjydjdrktydjdyj' 
max = 50byte 
a = max(a) 
+0

請更清楚。你想要給定字符串中的前50個字符嗎?請注意,在* text *中討論* bytes *是一種糟糕的形式:隨着Unicode的出現,甚至在此之前,它就已經過時。一個字符可能需要多個字節。 –

+0

爲了給你一個正確的答案,我們需要知道你使用的是什麼版本的Python:Python 2.x或Python 3.x? – KromviellBlack

回答

0

您可以使用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") 
+0

對不起,我的英語不好。不是50個字符,我想要50個字節。 –

+0

@PotemPotem哦,看看我更新的答案,這是你可能要找的。 :) – Inconnu

+0

@Achilles這不起作用,python對象的內存表示大小與asker想要知道的大小不同:'getsizeof('a'.encode('ascii'))== 34 '。 – user312016

0

你可以,如果你使用的每個字節編碼一個字符只使用切片:

a = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' 

a[:50] 
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' 

注意只有在你寫這個地方纔有意義。如果python對象表示的大小在你的用例中更有意義,那麼@Achilles的答案應該可行。