kk6*_*axq 3 python string rss parsing text
我有一个像这样的字符串:
Trump, Defending Himself After Flynn Guilty Plea, Says FBI Is in 'Tatters' | CVS to Buy Aetna for $69 Billion in a Deal that May Reshape the Health Industry | Joy Reid Apologizes for Past Anti-Gay Articles: 'Insensitive, Tone Deaf and Dumb' | California 18-year-old confesses to molesting dozens of children | Bill Belichick Apologizes for Rob Gronkowski's Late Hit, Calls It 'Bulls--t' | Met Opera Suspends James Levine After New Sexual Abuse Accusations | Like it or not, Alabama brings legitimacy to this year's College Football Playoff | Trump's campaign: Big Macs, screaming fits and constant rivalries | Manhattan equity director mauled to death by shark while scuba diving off Costa Rican coast | Man Stabs Two in Queens, Then Drives Into Their Helpers, Police Say | Here's how the Rangers might be able to separate themselves from other contenders for Shohei Ohtani | Alabama's Disdain for Democrats Looms Over Its Senate Race | Billy Bush confirms it was Trump's voice on 'Access Hollywood' tape: 'Yes, Donald Trump, you said that' | Andy Reid: Darrelle Revis didn't play in second half because he played a lot in first half | Geno Smith calls out 'coward' Rex Ryan: 'I saved his job' | Jimmy Garoppolo gives the 49ers exactly what they need, plus more Week 13 notes | Enter the 'Petro': Venezuela to Launch Oil-Backed Cryptocurrency | Wiring blamed in failed Pontiac Silverdome implosion | McConnell predicts unpopular tax bill will be a winning issue for GOP | Broncos drop eighth straight in ugly loss to Dolphins |
Run Code Online (Sandbox Code Playgroud)
它是从 Google 新闻 RSS 源解析的新闻标题列表。我通过串行方式将数据发送到 LCD,该 LCD 有 2 行,每行 16 个字符。目前,我将字符串拆分为 32 个字符部分,然后将每个部分显示固定的时间长度。这样做的问题是,在大多数情况下,它仅显示最后一个单词的一部分,在某些情况下,仅显示第一个单词的一部分,具体取决于字符串的拆分方式。那么,如何通过空格分割字符串,以防止分割单词,并且仍然尝试小于 32 个字符的限制。
使用上述文本的示例是:
第一行:特朗普,事后为自己辩护
第二行:弗林认罪,称联邦调查局是
等等。
您可以创建自己的定义并定义限制,如下所示,并且可以迭代列表。
str = "Trump, Defending Himself After Flynn Guilty Plea, Says FBI Is in 'Tatters'"
def split_string(str, limit, sep=" "):
words = str.split()
if max(map(len, words)) > limit:
raise ValueError("limit is too small")
res, part, others = [], words[0], words[1:]
for word in others:
if len(sep)+len(word) > limit-len(part):
res.append(part)
part = word
else:
part += sep+word
if part:
res.append(part)
return res
print split_string(str=str, limit=32)
Run Code Online (Sandbox Code Playgroud)
输出:
['Trump, Defending Himself After', 'Flynn Guilty Plea, Says FBI Is', "in 'Tatters'"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3808 次 |
| 最近记录: |