python string으로 된 숫자 읽기

조회수 342회

안녕하세요. python을 이용해서 아래와 같이 숫자 값들을 담고 있는 파일을 읽으려고

-.8680573292E-01
0.1152196690E+01
0.2468541257E+01
0.9869345231E+00
-.3400007235E+00
0.1368798619E+01
-.1919632517E+00
0.1738000531E+00
-.6852306426E+00
0.1830562921E+01
0.1851838872E+01
0.4608874060E+00

아래와 같이 코드를 짰습니다.

import os, sys
import re
import math
import numpy as np

to_float = lambda x: float(x)

read = open('./ti_en.dat', 'r')
#print(read)                                                                                                          
read = ''.join(list(read))
read = list(map(to_float, read))

평소에는 with open과 for 문을 이용하여서 파일을 읽는 코드를 짰는데 뭔가 다르게 코드를 짜고 싶어서 open과 map 함수를 이용했습니다.

하지만 다음과 같은 오류가 발생하여서

 File "_tmp_getdvdl.py", line 10, in <lambda>
    to_float = lambda x: float(x)
ValueError: could not convert string to float: '-'

평소 방식으로 코드를 짰는데 오류 없이 잘 돌아갔습니다.

with open('ti_en.dat','r') as fi:
    for i in fi:
        en = float(i)
        print(en)

같은 float()함수를 쓰는데 왜 처음 코드는 오류가 나고 아래 코드는 오류가 발생하지 않을까요? 감사합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)