Python 检查 csv 文件中的值是否存在

Kon*_*nov 1 python csv loops if-statement

我得到了 URL 列表,例如:

urls_list = [
    "http://yandex.ru",
    "http://google.ru",
    "http://rambler.ru",
    "http://google.ru",
    "http://gmail.ru",
    "http://mail.ru"
]
Run Code Online (Sandbox Code Playgroud)

我需要打开 csv 文件,检查文件中列表中的每个值是否跳到下一个值,否则(如果值不在列表中)在列表中添加该值。

结果:第一次运行 - 添加所有行(如果文件为空),第二次运行 - 不执行任何操作,因为所有元素都已在文件中。

编写了代码,但它的工作完全不正确:

import csv


urls_list = [
    "http://yandex.ru",
    "http://google.ru",
    "http://rambler.ru",
    "http://google.ru",
    "http://gmail.ru",
    "http://mail.ru"
]



with open('urls_list.csv', 'r') as fp:
    for row in fp:
        for url in urls_list:
            if url in row:
                print "YEY!"
            with open('urls_list.csv', 'a+') as fp:
                wr = csv.writer(fp, dialect='excel')
                wr.writerow([url])
Run Code Online (Sandbox Code Playgroud)

wwi*_*wii 5

将文件读变量 -

with open('urls_list.csv', 'r') as fp:
    s = fp.read()
Run Code Online (Sandbox Code Playgroud)

检查每个列表项是否在文件中,如果没有则保存

missing = []
for url in urls_list:
    if url not in s:
        missing.append(url + '\n')
Run Code Online (Sandbox Code Playgroud)

将缺少的 url 写入文件

if missing:
    with open('urls_list.csv', 'a+') as fp:
        fp.writelines(missing)
Run Code Online (Sandbox Code Playgroud)