2017-11-25 142 views
0
import numpy as np 
from scipy import interpolate 
from scipy.interpolate import griddata 
import itertools 
from scipy.optimize import curve_fit 
import matplotlib.pyplot as plt 
import scipy.interpolate 
import numpy as np, pylab 
import os 
from numpy import split 


with open('zzz.txt') as fp: 
    for line in fp: 
     line = (line.split('=')[1].strip().split(',')) 
     line = list(map(float, line)) 
     print (line) 


tck = interpolate.bisplrep(xx, yy, zz, s=0) 

def givemeTL(X2,Y2): 
    return interpolate.bisplev(X2,Y2,tck) 

文件(zzz.txt)包括:呼叫值,并与Python运行代码

xx = 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55 
yy = 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09 
zz = 0.75, 0.81, 0.83, 1.00, 0.92, 0.91, 0.745, 0.805, 0.82 

我不断收到错误 ValueError异常:无法将字符串转换为float:'xx = 0.15'

我每次都遇到这个问题,调用这些值是运行代码的一部分。但每次我改变调用方法时,都会给我错误。 我该如何解决它? 问候

+0

文件操作适用于我:打印三个浮点数列表。我看到你编辑了你的问题。你真的更新了你的实际问题吗? – cmertayak

+0

请不要更改有问题的代码 - 现在我们的答案对您的问题没有意义。问题结束时应添加新代码。 – furas

回答

0

我不会创建变量xx但我将创建字典,data['xx'] - 这是首选的方法。

data = {} # dict for data from file 

with open('zzz.txt') as fp: 

    for line in fp: 
     variable, numbers = line.split('=') 

     variable = variable.strip() 

     numbers = numbers.split(',') 
     numbers = list(map(float, numbers)) 

     data[variable] = numbers 

你可以得到xxdata['xx']

print(data['xx']) 

,或者你可以分配给变量

xx = data['xx'] 

而不是data[variable] = numbers你可以使用globals()[variable] = numbers,你会得到可变xx没有做但人们说这不是首选的方法。

+0

我每次都遇到这个问题,调用这些值是运行代码的一部分。我不想保留代码内的值。但是每次我从一个文件中调用它时,它给出的xx并没有被定义 – user8670370

+0

它接受你的代码期望变量'xx',但是你没有创建它。您必须从文件读取数据并将其分配给变量'xx' - 即。 'xx = data ['xx']'。 – furas

+0

非常感谢您的帮助 – user8670370

0
data = {} 
with open('zzz.txt') as fp: 
    for line in fp: 
     var, values = list(map(str.strip, line.split('='))) 
     values = list(map(float, values.split(','))) 
     data[var] = values 
+0

谢谢你的回复,我得到了这个错误,NameError:name'xx'没有被定义。 – user8670370

+0

@ user8670370此方法不会创建变量'xx',它只能读取每一行并将其转换为您可以分配给不同变量的列表。你可以使用列表或字典来保持比最后一行更多的内容。 – furas

+0

当然我没有正确阅读这个问题当然,它可以用键作为'xx'和值作为值列表 – armak