【发布时间】:2023-03-30 10:17:02
【问题描述】:
我得到了 URL 列表,例如:
urls_list = [
"http://yandex.ru",
"http://google.ru",
"http://rambler.ru",
"http://google.ru",
"http://gmail.ru",
"http://mail.ru"
]
我需要打开 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])
【问题讨论】:
-
您正在以读取模式打开文件,而不是在读取时重新打开以追加。有一切问题的根源。
-
正如 Mauro 所说:使用第二个文件追加。
-
但是我需要在 csv 文件中添加列表元素并检查元素是否不在文件中 - 执行一些代码并在文件中写入元素,如果文件中的元素跳过此元素并转到下一个,如果下一个元素不在文件中 - 执行一些代码并在文件中写入元素等...
-
你真的需要
csv吗?考虑到您的文件只有一列 -
我实现这一目标的主要目标: 1. 我解析 xml 站点地图并访问每个链接。 2. 解析内容,存入文件。 3. 我需要检查我是否已经解析了这个 url - 跳过,然后转到下一个 url。
标签: python loops csv if-statement