2016-06-03 6 views
0

Im ищет способ «вырезать» строку, которая поступает из ввода html в 4 переменные, в зависимости от длины исходной строки. Мне нужно сделать это, потому что я хочу показать строку на ЖК-дисплее RaspberryPi. Поскольку на ЖК-дисплее может отображаться только 20 букв в строке, я думал о том, чтобы положить остальную часть строки в другую переменную.Python Вырезание строки для нескольких переменных

Прямо сейчас мой 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 

, но я действительно не знаю, как получить дальше с этим.

спасибо, что заранее.

+1

Посмотрите на [str.split()] (HTTPS://docs.python.org/2/library/stdtypes.html#str.split). – kazbeel

+0

Можно ли разделить TextA с помощью разделителя (, или других)? Используйте split(). Или вам нужны определенные части? lookup string slicing – RvdK

+0

Для этого используйте встроенную библиотеку ['textwrap'] (https://docs.python.org/3/library/textwrap.html). Это гарантирует, что вы, например, не используете. вырезать слово пополам. –

ответ

0

Вы можете нарезать строки, как это:

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

вам не нужны, чтобы проверить, если строка длиннее 20 символов, вы можете просто всегда добавить нарезку к вашему подпроцессу заявлению: TextA[0:20] не тронет строка, если она меньше 20 символов.

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'] 

 Смежные вопросы

  • Нет связанных вопросов^_^