2014-01-15 4 views
2

현재 테이블의 정보를 콘솔 라인에 표시하려고합니다. 데이터 포맷을 시도했지만 변경하고 싶지 않습니다.Python 3.3 - 테이블의 정보 포맷하기

형식의 코드는 다음과 같습니다

 Student Table 
StudentID  Name  Year 
    1  Dan            13  
    2  Laura            12  
    3  Joe            13  
    4  David            13  
    5  Jake            13 

내가 이름 정보의 위치를 ​​변경하려고하고 왼쪽 그래서 모든 라인에서 정렬 한 :

print("{:>21}".format("Student Table")) #Title 
    print("{:>5} {:>8} {:>8}".format(col_names[0], col_names[1], col_names[2])) #Column Names 
    for row in rows:  
     print("{:^8} {:<50} {:<8}".format(*row)) #information formatting 

다음 데이터는 다음과 같은 표시 열 제목과 함께.

정보 서식의 중간 번호를 변경하려고 시도했지만 정보가 변경되지 않는 것 같습니다!

정보를 어떻게 나열 할 수 있는지 알려주십시오.

+0

데이터에 공백이 있습니까? – Keith

+0

@ 키이스 아무 데이터도 공백이 없습니다 –

답변

2

본문 형식이 머리글 형식과 일치하지 않습니다. StudentID은 9 자입니다. 따라서 첫 번째 열의 길이를 늘려야합니다. falsetru의 대답에 추가

print("{:>9} {:<50} {:<8}".format(*col_names)) 
for row in rows:  
    print("{:^9} {:<50} {:>8}".format(*row)) 
+0

고맙습니다! –

0

, 당신은 매우 동적 서식 문자열을 가질 수 있습니다; 열 왼쪽 또는 오른쪽 폭이 방법은, 당신의 가치에 따라 설정할 수 있습니다

>>> '{0:{1}>{2}}'.format('some', '*', 10) 
'******some' 
>>> '{0:{1}{2}{3}}'.format('some', '*', '<', 10) 
'some******' 
>>> '{0:{1}{2}{3}}'.format('some', '*', '>', 10) 
'******some' 

또 다른 좋은 아이디어는 한 번 포맷 문자열을 정의하고, 어디서나 가능을 사용하는 것입니다.