我对Python仍然相当新,我无法看到是否找到simeple答案,我相信这是一个简单的答案。我有一个csv文件,其中包含主机名和IP列表。我需要确定文件中是否有重复的主机名或IP。我不需要纠正它或删除dup,只需告诉用户他们是假人并退出。
通常使用VB我只会将数据转储到数据表中并循环通过它,但是看起来,一旦你完成它就会使用dictreader,你必须重新打开文件。所以我希望有一种简单的方法可以将它包含在我的验证循环中。在验证数据之后,我再次打开csv和一个xml文件并将其全部写完。一切都很好。我只想在第一次通过中找到重复项。我尝试使用reader.seek [0],但显然不是dictreader的一部分。我想把它踢到一个列表但我失去了我的字段名。
with open(sys.argv[2], "r") as srcfile:
reader = csv.DictReader(srcfile)
reader.fieldnames = [header.lower() for header in reader.fieldnames]
for lines in reader:
if ip_check(lines["ipaddress"]) is False:
print lines["ipaddress"] + " is an invalid address in the " + sys.argv[2] \
+ " file."
sys.exit(1)
if hostname_check(lines["hostname"]) is False:
print lines["hostname"] + " is an invalid hostname in the " + \
sys.argv[2] + "file."
sys.exit(1)
答案 0 :(得分:1)
如果你在dict中有项目,你可以检查dict中是否已经存在某些内容:
my_dict = {'a': 1, 'b': 2}
if 'a' in my_dict:
print 'already seen a!'
所以你只需检查:
if new_ip in reader:
# do_something