如何使用CSV文件发送密钥?

时间:2017-03-25 20:44:40

标签: python csv email selenium

我是初学者,我到处尝试在线搜索,但我不确定我是否正在搜索合适的字词。

我的CSV文件看起来像这样:

https://drive.google.com/file/d/0B74bmJNIxxW-dWl0Y0dsV1E4bjA/view?usp=sharing

我想知道如何使用CSV文件执行此类操作,

电子邮件

driver.find_element_by_name(' EMAILADDRESS')send_keys(" johndoe@example.com")。

打印"已成功输入电子邮件..."

2 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点。一种方法是使用csv模块。

with open("foo.csv", "r") as fh:
    lines = csv.reader(fh)
    for line in lines:
        address = line[0]
        driver.find_element_by_name('emailAddress').send_keys(address)

答案 1 :(得分:0)

在这里发布数据确实很有帮助,这样我们就可以看到格式本身是什么,并自己运行代码。所以,我发明了一些样本数据

emails.csv

Email,Password,First Name,Last Name,City
foo1@example.com,frobinate,John,Doe,District Heights
foo2@example.com,frobinate,John,Doe,District Heights
foo3@example.com,frobinate,John,Doe,District Heights
foo4@example.com,frobinate,John,Doe,District Heights

我可以使用csv模块来阅读它。 csv.DictReader将每行读入自己的dict,让我按标题中给出的名称引用单元格。由于我稍后会通过电子邮件名称查找记录,因此我会将其读入另一个dict,它将作为记录的索引。如果同一个用户在那里多次,则只会记住最后一个用户。

在索引到位后,我可以通过电子邮件名称获取该行。

>>> import csv
>>> with open('emails.csv', newline='') as fp:
...     reader = csv.DictReader(fp) # auto-reads header
...     for row in reader:
...         email_index[row['Email']] = row
... 
>>> for item in email_index.items():
...     print(item)
... 
('foo3@example.com', {'Email': 'foo3@example.com', 'City': 'District Heights', 'First Name': 'John', 'Password': 'frobinate', 'Last Name': 'Doe'})
('foo2@example.com', {'Email': 'foo2@example.com', 'City': 'District Heights', 'First Name': 'John', 'Password': 'frobinate', 'Last Name': 'Doe'})
('foo4@example.com', {'Email': 'foo4@example.com', 'City': 'District Heights', 'First Name': 'John', 'Password': 'frobinate', 'Last Name': 'Doe'})
('foo1@example.com', {'Email': 'foo1@example.com', 'City': 'District Heights', 'First Name': 'John', 'Password': 'frobinate', 'Last Name': 'Doe'})
>>> 
>>> user = 'foo1@example.com'
>>> record = email_index[user]
>>> print("{Email} is {First Name} {Last Name} and lives in {City}".format(**record)) 
foo4@example.com is John Doe and lives in District Heights
>>>