0

我在努力工作的同时学习 python。当我使用以下函数导入一些数据时(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

我使用的数据如下所示:

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

谁能指出我正确的方向来克服这个错误?

4

1 回答 1

0

问题以不同的方式解决了-尽管我仍然不明白为什么上述方法不起作用。它可能基于不同版本的 Python(2.7 与 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
于 2013-07-03T02:07:40.253 回答