Python 匹配表时出现值错误
当我运行程序时,我得到Python 匹配表时出现值错误,python,matching,Python,Matching,当我运行程序时,我得到ValueError。我不知道为什么。该计划是: def get_coordinates(infile, delimiter): new_list = [] with open(infile, 'r') as f: for line in f: x, y = [float(i) for i in line.strip().split('delimiter')]
ValueError
。我不知道为什么。该计划是:
def get_coordinates(infile, delimiter):
new_list = []
with open(infile, 'r') as f:
for line in f:
x, y = [float(i) for i in line.strip().split('delimiter')]
new_list.append('%0.4f,%0.4f' % (x, y))
return new_list
LIST1 = get_coordinates('table1.txt', ',')
LIST2 = get_coordinates('table2.txt', ',')
NEW_LIST = list(set(LIST1) & set(LIST2))
with open('outfile.txt', 'w') as outfile:
for xy in NEW_LIST:
outfile.write('%s\n' % xy)
我得到以下信息:
ValueError
202 else:
203 filename = fname
--> 204 __builtin__.execfile(filename, *where)
---> 18 LIST1 = get_coordinates('table1.txt', ',')
19 LIST2 = get_coordinates('table2.txt', ',')
20
7 with open(infile, 'r') as f:
8 for line in f:
----> 9 x, y = [float(i) for i in line.strip().split('delimiter')]
222.27515, 8.0208306eral for float(): 222.30777, 8.9363889
尝试在分隔符周围不加引号
x,y=[line.strip().split(分隔符)中i的浮点(i)]
您正试图使用字符串“delimiter”作为拆分字符,而不是变量delimiter所包含的字符。您看到这一点是因为从文件的行中提取浮点数的逻辑和/或代码中存在错误。这将导致调用
float()
,如下所示:
>>> float('222.30777, 8.9363889')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): 222.30777, 8.9363889
浮动('222.30777,8.9363889')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:float()的文本无效:222.30777,8.9363889
当前,您正在尝试拆分字符串'delimiter'
上的每一行,因此,例如'foodeimiterBar'。拆分('delimiter')
将导致['FOO','BAR']
从错误消息看,浮点数似乎是用逗号分隔的,因此如果您有一个名为
分隔符的变量
,那么您应该使用line.strip().split(delimiter)
,或者只要使用line.strip(),否则很难理解。我按照您的建议进行了尝试,但仍然得到一个错误(222.37864r:invalid literal for float():8.9363889)。222.37864是第2行的x坐标,8.9363889是第1行的y坐标(来自表1)。表1有11个坐标,表2为app。600