Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 匹配表时出现值错误_Python_Matching - Fatal编程技术网

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