[英]Python check if value in csv file
我得到了網址列表,例如:
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])
將文件讀入變量-
with open('urls_list.csv', 'r') as fp:
s = fp.read()
檢查每個列表項是否在文件中,如果沒有保存,請檢查
missing = []
for url in urls_list:
if url not in s:
missing.append(url + '\n')
將缺少的網址寫入文件
if missing:
with open('urls_list.csv', 'a+') as fp:
fp.writelines(missing)
考慮到您的文件只有一列, csv
模塊可能是一個過大的功能。
下面是一個版本,該版本首先從文件中讀取所有行,然后重新打開文件以寫入文件中尚未存在的url:
lines = open('urls_list.csv', 'r').read()
with open('urls_list.csv', 'a+') as fp:
for url in urls_list:
if url in lines:
print "YEY!"
else:
fp.write(url+'\n')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.