웹에서 텍스트 파일을 읽는 중입니다. 파일은 데이터 포인트 수를 포함하는 일부 헤더 행으로 시작하고 실제 꼭짓점 (각각 3 개의 좌표)을 따릅니다. 내가 읽고 내가 얼마나파이썬에서 파일에서 특정 수의 float을 읽는 방법?
이것은
이# comment
HEADER TEXT
POINTS 6 float
1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9
1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9
POLYGONS
단어 POINTS
로 시작하는 라인은 정점의 수를 포함 (우리가 줄에 세 꼭지점이이 경우에는, 그러나 그것은 변경 될 수 있습니다) : 같은 파일이 보인다 지금 당장 :
ur=urlopen("http://.../file.dat")
j=0
contents = []
while 1:
line = ur.readline()
if not line:
break
else:
line=line.lower()
if 'points' in line :
myline=line.strip()
word=myline.split()
node_number=int(word[1])
node_type=word[2]
while 'polygons' not in line :
line = ur.readline()
line=line.lower()
myline=line.split()
i=0
while(i<len(myline)):
contents[j]=float(myline[i])
i=i+1
j=j+1
줄 단위로 문자열을 읽고 부동 소수점 숫자로 변환하는 대신 지정된 수의 부동 소수점을 읽을 수있는 방법은 무엇입니까? 대신 내가 파일
어떤 제안을 환영합니다에서 지정된 수의 요소를 읽을 수 ur.readline()의
..
줄을 읽는 대신 특정 수의 수레 만 읽어야한다고 생각하는 이유를 설명해 주시겠습니까? 그 대답은 우리가 당신을 도울 때 도움이 될 것입니다 ... (예를 들어, 행을 읽고, 공간을 나누고, 필요한 수의 요소를 반환하고, 즉시 플로트로 변환 할 수 있습니까?) –
문제는 파일이 크고 요소의 실제 수가 100000에 가까우며 이렇게하면 너무 많은 시간이 걸립니다. – sahel
@sahel, (docs.python.org/library/profile.html) 프로파일을 작성하고 병목 현상은? 결과와 관련 코드를 게시 할 수 있습니까? (이러한 것들이 있다면, 조금 도움이 될만한 아이디어를 생각해 볼 수 있습니다.) 해석 할 형식에 대해 더 자세히 설명해 주시겠습니까? 아마도 파일을 처리하는 더 좋은 방법이 있을까요? –