2016-06-03 7 views
0

Im은 원래 문자열의 길이에 따라 HTML 입력에서 오는 문자열을 4 개의 변수로 "잘라내는"방법을 찾고 있습니다. 나는 RaspberryPi LCD-Display에 문자열을 표시하기 때문에이 작업을 수행해야합니다. LCD는 한 줄에 20 개의 글자 만 표시 할 수 있기 때문에 나머지 문자열을 다른 변수에 넣을까 생각했습니다.Python 여러 변수에 문자열 자르기

지금 내 파이썬 코드는 다음과 같습니다.

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 자 미만인 경우에만 디스플레이 출력이 작동합니다.

그래서 기본적으로 TextA1을 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']