我有一个python程序,它发送电子邮件给多个附件的多个收件人(它将文件夹中的所有pdf文件发送并发送电子邮件)。现在我想这样做
我的文件夹包含
file1.pdf file2.pdf file3.pdf file4.pdf file5.pdf file6.pdf .....
我有一个文本文件,其中包含名称,emailid和要附加的文件列表
recipient1 recipient1@gmail.com file1.pdf file2.pdf file3.pdf file4.pdf
recipient2 recipient2@gmail.com file2.pdf file3.pdf
recipient3 recipient3@gmail.com file1.pdf file2.pdf
def get_contacts(filename):
names = []
emails = []
with open(filename, mode='r', encoding='utf-8') as contacts_file:
for a_contact in contacts_file:
names.append(a_contact.split()[0])
emails.append(a_contact.split()[1])
return names, emails
我使用上面的代码来读取文本文件并获取收件人的姓名和电子邮件ID,我是否可以使用类似的方式来阅读要附加到每个收件人的文件
答案 0 :(得分:0)
只要人名或PDF文件名中没有空格,您就可以使用相同的代码获取剩余信息。试试这个:
pdfs = []
...
for a_contact in contacts_file:
names.append(a_contact.split()[0])
emails.append(a_contact.split()[1])
pdfs.append(a_contact.split()[2:])
return names, emails, pdfs
这将创建PDF文件列表。列表中的索引将相应的索引与emails
和names
列表相匹配。请注意使用切片表示法[2:]
来抓取一个表达式中的所有PDF。
调用str.split()
三次似乎很乱。我们怎么称呼它并保存结果呢?
for a_contact in contacts_file:
a_contact_list = a_contact.split()
names.append(a_contact_list[0])
emails.append(a_contact_list[1])
pdfs.append(a_contact_list[2:])