2013-07-02 1 views
0

저는 제 일을하려고하는 것과 동시에 파이썬을 배우고 있습니다. 나는 (GSLIB 그냥 파일 형식입니다) 일부 데이터를 가져 오려면 다음 기능을 사용하는 경우 :데이터 가져 오기 기능을 실행합니다.

def ReadGsLibFile(infilename) : 
    file = open(infilename, 'r') 
    file.readline() 
    nvar = int(file.readline()) 
    for i in range(nvar) : file.readline() 
    data = [] 
    while True : 
     dataFile = file.readline() 
     if len(dataFile) == 0 : break 
     else : 
     data.append([float(val) val in dataFile.split() ] ) 
    return data 

나는이 오류를 얻을 :

File "", line 13 
data.append([float(val) val in dataFile.split() ]) 
^ 
SyntaxError:invalid syntax 

데이터를 I는 다음과 같다을 사용하고 있습니다 :

apTItest.sgems 
4 
x 
y 
z 
value 
    0.00   0.00    0.00     4.000000 
    1.00   0.00    0.00     4.000000 
    2.00   0.00    0.00     4.000000 
    3.00   0.00    0.00     4.000000 
    4.00   0.00    0.00     4.000000 
    5.00   0.00    0.00     4.000000 
    6.00   0.00    0.00     4.000000 

누구든지이 오류를 극복하기 위해 올바른 방향으로 나를 가리킬 수 있습니까?

답변

0

문제가 다른 방식으로 수정되었지만 위와 같은 이유 때문에 문제가 해결되지 않습니다. 다른 버전의 Python (2.7 vs 3.3)을 기반으로 할 수 있습니다. 가져 오기가 쉬워 지도록 입력 파일 형식을 변경했습니다.

def ReadGsLibFile(infilename) : 
    file = open(infilename, 'r') 
    file.readline() 
    nvar = int(file.readline()) 
    for i in range(nvar) : file.readline() 
    data = [] 
    while True : 
      dataFile = file.readline() 
      if len(dataFile) == 0 : break 
      else : 
       row = [] 
       for val in dataFile.split(): 
        row.append(float(val)) 

       data.extend(row) 
    return data 

및 가져 오기 파일은 이제 단지 원본 파일의 마지막 열을 유지은 ... 다음과 같습니다

apTItest 
4 
x 
y 
z 
value 
4 
4 
4 
4 
4 
4 
4