0

我正在寻找一种将来自 html 输入的字符串“剪切”成 4 个变量的方法,具体取决于原始字符串的长度。我需要这样做,因为我想在 RaspberryPi LCD 显示器上显示字符串。因为 LCD 每行只能显示 20 个字母,所以我考虑将字符串的其余部分放入另一个变量中。

现在我的 Pythoncode 看起来像这样。

def text1(text):
    global TextA
    TextA = text
    TextA = urllib.request.unquote(TextA)
    subprocess.Popen(["espeak", "-vde",  TextA])
    subprocess.Popen(["python2", "/home/pibot/display.py", TextA])

带有 espeak 的部分非常完美。仅当字符串包含少于 20 个字母时,显示输出才有效。

所以基本上我只想将 TextA 拆分为 TextA1 TextA2 TextA3 和 TextA4。

我想过用

if len(TextA) > 20

但我真的不知道如何进一步解决这个问题。

非常感谢您提前。

4

2 回答 2

0

如果您不需要正确的自动换行,请尝试这样的理解:

from math import ceil
str = 'very long string, much longer than maxLength characters.'\
      'very long string, much longer than maxLength characters'

maxLength = 20
numStringsOut = int(ceil(len(str)/float(maxLength)))

subStringList = [str[p * maxLength: p * maxLength + maxLength]
                 for p in range(numStringsOut)]
print(subStringList)

输出:

['very long string, mu', 'ch longer than maxLe', 'ngth characters.very', ' long string, much l', 'onger than maxLength', ' characters']
于 2016-06-03T12:14:24.990 回答
0

您可以像这样对字符串进行切片:

>>> 'very long string, much longer than 20 characters'[0:20]
'very long string, mu'

您不需要检查字符串是否超过 20 个字符,您可以随时将切片添加到您的子流程语句中:TextA[0:20]如果字符串短于 20 个字符,则不会触及该字符串。

于 2016-06-03T12:08:36.537 回答