파이썬 : 출력 문자열 형식, 오른쪽 정렬
좌표 x, y, z가 포함 된 텍스트 파일을 처리 중입니다.
     1      128  1298039
123388        0        2
....
모든 라인은 다음을 사용하여 3 개의 항목으로 구분됩니다.
words = line.split()
데이터를 처리 한 후 각 열의 항목이 입력 파일뿐만 아니라 올바르게 정렬되도록 다른 txt 파일에 좌표를 다시 작성해야합니다. 모든 선은 좌표로 구성됩니다
line_new = words[0]  + '  ' + words[1]  + '  ' words[2].
std::setw()C ++에는 너비와 정렬을 설정할 수 있는 조작기 등이 있습니까?
최신 str.format구문을 사용하여이 방법을 시도하십시오 .
line_new = '{:>12}  {:>12}  {:>12}'.format(word[0], word[1], word[2])
그리고 다음은 이전 %구문을 사용하여 수행하는 방법입니다 (지원하지 않는 이전 버전의 Python에 유용함 str.format).
line_new = '%12s  %12s  %12s' % (word[0], word[1], word[2])
다음과 같이 정렬 할 수 있습니다.
print('{:>8} {:>8} {:>8}'.format(*words))
여기서 >수단 " 오른쪽 정렬 "과 8는 IS 폭 특정 값이.
그리고 여기에 증거가 있습니다 :
>>> for line in [[1, 128, 1298039], [123388, 0, 2]]:
    print('{:>8} {:>8} {:>8}'.format(*line))
       1      128  1298039
  123388        0        2
추신. *line는 line목록이 압축 해제 됨을 의미 하므로 다음 .format(*line)과 유사하게 작동합니다 .format(line[0], line[1], line[2])( line3 개의 요소 만있는 목록 이라고 가정 ).
다음을 사용하여 달성 할 수 있습니다 rjust.
line_new = word[0].rjust(10) + word[1].rjust(10) + word[2].rjust(10)
파이썬 3.6 이상에서 새로운 리터럴 문자열 보간을 정말 즐깁니다.
line_new = f'{word[0]:>12}  {word[1]:>12}  {word[2]:>12}'
참조 : PEP 498-리터럴 문자열 보간
'f-string'형식을 사용하여 형식을 지정할 수있는 다른 방법은 다음과 같습니다.
print(
    f"{'Trades:':<15}{cnt:>10}",
    f"\n{'Wins:':<15}{wins:>10}",
    f"\n{'Losses:':<15}{losses:>10}",
    f"\n{'Breakeven:':<15}{evens:>10}",
    f"\n{'Win/Loss Ratio:':<15}{win_r:>10}",
    f"\n{'Mean Win:':<15}{mean_w:>10}",
    f"\n{'Mean Loss:':<15}{mean_l:>10}",
    f"\n{'Mean:':<15}{mean_trd:>10}",
    f"\n{'Std Dev:':<15}{sd:>10}",
    f"\n{'Max Loss:':<15}{max_l:>10}",
    f"\n{'Max Win:':<15}{max_w:>10}",
    f"\n{'Sharpe Ratio:':<15}{sharpe_r:>10}",
)
다음과 같은 출력이 제공됩니다.
Trades:              2304
Wins:                1232
Losses:              1035
Breakeven:             37
Win/Loss Ratio:      1.19
Mean Win:           0.381
Mean Loss:         -0.395
Mean:               0.026
Std Dev:             0.56
Max Loss:          -3.406
Max Win:             4.09
Sharpe Ratio:      0.7395
여기서 당신이하고있는 것은 첫 번째 열의 길이가 15 자이며 왼쪽으로 정렬되고 두 번째 열 (값)은 10 자이며 오른쪽으로 정당하다는 것입니다.
출력의 간단한 표 :
a = 0.3333333
b = 200/3
print("variable a    variable b")
print("%10.2f    %10.2f" % (a, b))
산출:
variable a    variable b
      0.33         66.67
% 10.2f : 10은 최소 길이이고 2는 소수점 이하 자릿수입니다.
참고URL : https://stackoverflow.com/questions/8234445/python-format-output-string-right-alignment
'programing tip' 카테고리의 다른 글
| Angular 2의 로컬 스토리지 (0) | 2020.06.27 | 
|---|---|
| Java에서 링크 된 목록 데이터 구조를 작성하는 방법 (0) | 2020.06.27 | 
| Mockito를 사용하여 모의 객체에서 확인 된 예외를 throw하십시오. (0) | 2020.06.26 | 
| Windows Form (C #)에서 애니메이션 GIF를 표시하는 방법 (0) | 2020.06.26 | 
| WebGL 및 three.js 학습 (0) | 2020.06.26 |