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 답변
-
''.join("a", "b", "c")
는"abc"
가 됩니다. join 을 왜하는건가요?- for 문을 쓰면 한 줄씩 읽어서 오래 걸린다고 생각하여 파일을 한 번에 읽어서 좀 더 빠른 속도로 코드를 돌리고 싶어서 join을 썼습니다. 거기에만 집중하다보니 답변해주신 내용을 놓습니다.;; 알 수 없는 사용자 2021.3.18 10:32
댓글 입력