2016-09-22 7 views
0

(영어로 죄송합니다) Im cmd에서 일하고 있습니다.단어 사이에 공백을 만드는 법 - python

print data.ljust((20 - len(data) + 20)) if len(data) <= 20 else (data[0:17] + '...').ljust(20)), 'DIR' 

그러나 그 일이 becase 작동하지 :

file_name   DIR 
file_name_3   DIR 
file_name_545   DIR 
file_name_LlK   DIR 

내가 루프에서이 작업을 수행 할 tryied : 그 일을하는 대신

file_name    DIR 
file_name_3   DIR 
file_name_545   DIR 
file_name_LlK   DIR 

: 나는 그 일을 할 글자가 더 크고 또 다른 글자 인 경우, 단어 'ljust'로 단어를 사용할 수 없게됩니다.

+1

코드를 보지 않았지만 문제가 문자가 다른 크기 인 경우 터미널에 모노 스페이스 글꼴을 사용해야합니다. –

+0

'print data, (20-len (data)) * '', 'DIR ''? –

+0

@barak manos 일했습니다! 너 거기서 뭐 했니? –

답변

0

형식 문자열을 사용하십시오. ljkust()

data.ljust(20) + "DIR" 

"{:20}{}".format(data,"DIR") 

같은 help(str.ljust)는, ljust

+0

원하는 데이터 단어의 특수 문자의 실제 폭에 대한 프롤렘이 있습니다. –

+0

이것은 @barak manos 솔루션과 동일해야합니다. 이미 언급 한 jeff carey와 같은 모노 스페이스 글꼴은 사용하지 않는 것이 좋습니다. – nauer

+0

나는 당신의 대답과 그 일을하기 위해 지금도 노력했다. 왜 그걸 'ljust'에서 꺼내 죠? –

0

먼저 이해 데이터에서 가장 넓은 부분을 찾아 참조하십시오. 나는 튜플리스트를 가지고 있다고 가정한다.

col_width = max(tup[0] for tup in list_of_tuples) 
for tup in list_of_tuples: 
    print(tup[0].ljust(col_width), tup[1].ljust(colwidth)) 

ljust

원하는 기능입니다,하지만 난 당신이 당신이 원하는 아니다 폭이 다른, 서로 다른 라인에 열을 설정하는 것 같아요.

관련 문제