2012-12-10 3 views
3

문자열의 오른쪽 부분을 왼쪽 정렬하고 싶습니다. 나는 IRC 봇의 HELP 명령을 쓰고 있어요 나는 설명은 전반에 걸쳐 동일한 폭으로 왼쪽으로 정렬하려면 : 전체 문자열을파이썬에서 문자열의 일부분을 어떻게 좌철 시키는가?

List of commands: 
## !   Say a Text 
## execute Execute an IRC command 
## help  Help for commands 

ljust 작품,하지만 어떻게 내가의 일부에이 작업을 수행 할 문자열 만?

이는 문자열을 생성하는 내 현재 코드 :

format.color("## ", format.LIME_GREEN) + self.commands[ cmd ][1].__doc__.format(format.bold(cmd)).splitlines()[0].strip() 
+0

분할 당신이 원하는 사람 ljust 관련 부분에서 문자열 및 조각을 가입 할 수 있습니다. – mmgp

답변

3

파이썬의 Format Specification Mini-Languageprintf-style String Formatting을 살펴보십시오.

예 :

>>> '{:<20} {}'.format('## execute', 'Execute an IRC command') 
'## execute   Execute an IRC command' 

format() 파이썬 3.0에서 도입 파이썬 2.6에 백 포트, 그래서 당신은 이전 버전을 사용하는 경우, 동일한 결과를 달성 할 수있는 것을 참고 :

>>> '%-20s %s' % ('## execute', 'Execute an IRC command') 
'## execute   Execute an IRC command' 

미리 현명한 방법으로 문자열을 분할해야합니다.

예 :

>>> '{:<20} {}'.format(*'{0} <COMMAND>: Help for <command>'.split(': ')) 
'{0} <COMMAND>  Help for <command>' 

>>> '%-20s %s' % tuple('{0} <COMMAND>: Help for <command>'.split(': ')) 
'{0} <COMMAND>  Help for <command> 
+0

이 목록에서 작동하지만이 형식을 지정하는 방법은 무엇입니까? "{0} : 에 대한 도움말" – sol

+0

괜찮습니다. 두 번째 것은 내가 당신의 컴팩트 한 디자인으로 전환 한 완벽한 작품입니다. 나는 지금 .format() 엔진이 강력하지 않았어! – sol

0

당신은 바르게 str.ljust을 언급, 그래서 적절한로 문자열을 분할하고 '왼쪽'부분에 적용 단지 경우입니다. 예 :

>>> parts = "## ! Say a Text".split(" ", 2) 
>>> " ".join(parts[:2]).ljust(20)+parts[2] 
'## !    Say a Text' 

분명히 간단히하기 위해 문자열에 가입하기 전에 수행하는 것이 좋습니다.

+0

고마워, 이거 잘 됐어! – sol

관련 문제