所以有一串由\n分隔的值。例如:“link1\nlink2\nlink3\nlink4\n” 我正在嘗試在電報 API 中發送訊息,但它的長度限制為 4050 個字符。如何在 \n 字符處將字串拆分為 4050 個字符或更少的塊,以免弄亂任何鏈接?所以我希望最終結果是包含 4050 個字符或更少字符的字串串列,原始串列拆分點應位于“\n”字符處。
uj5u.com熱心網友回復:
您可以使用textwrap.wrap
:
import textwrap
textwrap.wrap(s, width=4050)
例子:
s = "link1\nlink2\nlink3\nlink4\n"*1000
# get chunks
chunks = textwrap.wrap(s, width=4050)
# get size
list(map(len, chunks))
#[4049, 4049, 4049, 4049, 4049, 3749]
完全中斷的替代方法\n
:
def split(s, max_len=4050):
out = []
start = 0
last_n = None
for i, c in enumerate(s):
if c == '\n':
last_n = i
if i-start>max_len or i 1 == len(s):
out.append(s[start:last_n 1])
start = last_n 1
return out
uj5u.com熱心網友回復:
您可以使用.split()
并列出理解:
a = "link1\nlink2\nlink3\nlink4\n"
b = a.split('\n')
[i for i in b if len(i)<4050 and i]
輸出:
['link1', 'link2', 'link3', 'link4']
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/469386.html