我在尝试做我的工作的同时正在学习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
有人能指出我正确的方向来解决这个错误吗?
答案 0 :(得分: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