2014-09-11 1 views
0

가끔 플로팅 0을 포함 할 수있는 파일에 플로트를 저장하려고합니다.format()과 정렬하는 동안 float에서 후미를 제거합니다.

appliyng {:g} 결과가 예상되는 경우 : 후미 0이 제거됩니다. 이 문제는 텍스트 파일에 float을 정렬하려고 할 때 발생합니다.이 경우에는 {:>10.0g}을 사용하고 결과는 후행 0이 제거되는 대신 과학적 표기법으로 작성된 float입니다. 여기

은 MWE입니다 :

a = 546.0 
b = 6785.35416 

with open('format_test.dat', 'a') as f_out: 
    f_out.write('{:g} {:>15.3f}'.format(a, b)) # <-- NO ZEROS BUT NOT ALIGNED 
    f_out.write('\n') 
    f_out.write('{:>10.0g} {:>15.3f}'.format(a, b)) # <-- ALIGNED BUT IN SC NOTATION 

출력 :

546  6785.354 
    5e+02  6785.354 

그것을 전달하기 전에 플로트 함부로 변경하지 않고 format() 끝에서이 문제를 해결하기 위해 어떤 방법이 있나요?

+0

'{: g} 심지어 사용하는 생각하지 않았다 0을 후행 제거하는''0.f'을 당신은 두 값에 대한 f를 사용하여 당신이 원하는 것을 얻을 수 있습니다 . 답변을 받으실 수 있도록 의견을 게시 하시겠습니까? – Gabriel

답변

1

g은 값의 크기에 따라 과학 표기법으로 자동 전환됩니다 (the docs 참조).

>>> '{:>10.0f} {:>15.3f}'.format(546.0, 6785.354) 
'  546  6785.354' 
나는 내가 사용해야 결정 하였다
관련 문제