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)
将文件读入变量 -
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)