<p>谢谢各位。我已经删除了这个函数,只是将输入csv文件名作为输入传递,它就像一个符咒。这是密码。在</p>
<pre><code>import csv
import unicodecsv as csv
from faker import Factory
from collections import defaultdict
def anonymize_rows(rows):
"""
Rows is an iterable of dictionaries that contain name and
email fields that need to be anonymized.
"""
# Load the faker and its providers
faker = Factory.create()
# Create mappings of names & emails to faked names & emails.
names = defaultdict(faker.name)
emails = defaultdict(faker.email)
# Iterate over the rows and yield anonymized rows.
for row in rows:
# Replace the name and email fields with faked fields.
row['name'] = names[row['name']]
row['email'] = emails[row['email']]
# Yield the row back to the caller
yield row
#def anonymize('masktest.csv', 'masktest_tgt.csv'):
"""
The source argument is a path to a CSV file containing data to anonymize,
while target is a path to write the anonymized CSV data to.
"""
with open('masktest.csv', 'rU') as f:
with open('masktest_tgt.csv', 'w') as o:
# Use the DictReader to easily extract fields
reader = csv.DictReader(f)
writer = csv.DictWriter(o, reader.fieldnames)
# Read and anonymize data, writing to target file.
for row in anonymize_rows(reader):
print (row['name'])
writer.writerow(row)
</code></pre>
<p>输入:id、姓名、电子邮件、电话
123,戴夫·杰克逊,戴夫。杰克逊@电子邮件,212-121-3234</p>
<p>屏蔽输出:123,伊丽莎白·迈尔斯总经理,alicia70@hotmail.com,212-121-3234</p>