Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.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 for循环和多个CSV文件存在问题_Python - Fatal编程技术网

Python for循环和多个CSV文件存在问题

Python for循环和多个CSV文件存在问题,python,Python,第一个for循环似乎只考虑第一个csv文件中的第一行,不会继续比较。我试着用很多方法重写它,但现在我完全迷路了,所以我转向你们 有谁能告诉我,如果像我在这里写代码时有什么错误: with open("./products.csv", mode="r") as products_list1: with open("./products2.csv", mode="r") as products_list2: with open("./results.csv", mode="a

第一个for循环似乎只考虑第一个csv文件中的第一行,不会继续比较。我试着用很多方法重写它,但现在我完全迷路了,所以我转向你们

有谁能告诉我,如果像我在这里写代码时有什么错误:

with open("./products.csv", mode="r") as products_list1:
    with open("./products2.csv", mode="r") as products_list2:
        with open("./results.csv", mode="a") as results:
            for i in products_list1:
                for j in products_list2:
                    jaccard = get_jaccard_sim(i, j)
                    if jaccard >= 0:
                        results.writelines(i+","+j+"\n"+","+str(jaccard))

在为循环打开任何
之前,您应该执行以下操作:

pdt_list1 = products_list1.readlines()
pdt_list2 = products_list2.readlines()
并在
pdt\u列表1
pdt\u列表2
上执行操作


这将解决问题!祝你好运

在打开任何
for
循环之前,您应该执行以下操作:

pdt_list1 = products_list1.readlines()
pdt_list2 = products_list2.readlines()
并在
pdt\u列表1
pdt\u列表2
上执行操作

这将解决问题!祝你好运

你可以试试这个

with open("./products.csv", mode="r") as products_list1:
    lines1 = products_list1.readlines()
with open("./products2.csv", mode="r") as products_list2:
    lines2 = products_list2.readlines()
with open("./results.csv", mode="a") as results:
    for i in lines1:
        for j in lines2:
            jaccard = get_jaccard_sim(i, j)
            if jaccard >= 0:
                results.writelines(i + "," + j + "\n" + "," + str(jaccard))
你可以试试这个

with open("./products.csv", mode="r") as products_list1:
    lines1 = products_list1.readlines()
with open("./products2.csv", mode="r") as products_list2:
    lines2 = products_list2.readlines()
with open("./results.csv", mode="a") as results:
    for i in lines1:
        for j in lines2:
            jaccard = get_jaccard_sim(i, j)
            if jaccard >= 0:
                results.writelines(i + "," + j + "\n" + "," + str(jaccard))

您需要提供有关要完成的操作的更多信息。文件不是列表,每次迭代之前都必须重新打开它们。
产品中的i\u列表1:
应读取产品中的i。readlines():
以获得实际列表,从而循环输入。它与.readlines()配合使用。您需要提供有关要完成的任务的更多信息。文件不是列表,每次迭代之前都必须重新打开。
对于产品中的i\u列表1:
应该读取产品中的i的
。readlines():
以获得一个实际的列表来循环输入。它与.readlines()一起工作,类似于@Satya在这里提到的内容:类似于@Satya在这里提到的内容: