【发布时间】:2015-02-19 04:52:42
【问题描述】:
我有一个逗号分隔的文本文件,其内容有点像这样:
pickle_4500@dill.chile, pickle_4501@dill.chile, pickle_4502@dill.chile, pickle_4503@dill.chile, pickle_4504@dill.chile, pickle_4505@dill.chile
我们称之为emails1.csv。我还有另一个逗号分隔的文本文件:
pickle_4503@dill.chile, pickle_4505@dill.chile
我们称之为emails2.csv。我需要使用 Python 从emails1.csv 中减去emails2.csv。在伪代码中:
emails1.csv = emails1.csv - emails2.csv
对 Python 完全陌生,但我是根据我找到的几个例子来做这个的。它做我认为它做的事吗?也就是说,将emails2.csv 中的电子邮件从emails1.csv 中取出,并将差异放入一个名为subtractomatic.csv 的文件中。
from sets import Set
import csv
fin = open('emails1.csv', 'rb')
reader = csv.reader(fin)
email_list1 = list(reader)[0]
fin = open('emails2.csv', 'rb')
reader = csv.reader(fin)
email_list2 = list(reader)[0]
email_list1 = list(set(email_list1)-set(email_list2))
fout = open('subtractomatic.csv', 'wb')
writer = csv.writer(fout, quoting=csv.QUOTE_NONE)
writer.writerow(email_list1)
fout.close()
fin.close()
fin.close()
我认为是这样,因为我的原始文件,即emails1.csv,里面有X 电子邮件,当我打开subtractomatic.csv 时,里面有电子邮件,当我运行时
grep @ -o subtractomatic.csv | wc -l
在终端我得到X/2,这是有道理的,因为emails1.csv 的电子邮件数量是emails2.csv 的两倍---按设计。不过我也是新手,所以不知道我看这个东西对不对。
【问题讨论】:
-
您可以执行以下操作:
list_a = list(set(list_a) - set(list_b)) -
要清楚,上面的“=”是一个重新赋值运算符。
-
嗨 PicklePilot,欢迎来到 StackOverflow!我已为您的问题添加了正确的代码格式,并删除了一些与您的问题无关的额外文本。请查看我们的常见问题解答。如果您能明确说明您期望的结果,您将得到符合您期望的答案。
-
"psuedocodenese" 是 Pickle_Pilot 于 2015 年 2 月 18 日星期三 20:50:27 PST 创造的,如果我愿意的话,它可能正在美国专利商标局注册。 ^_^