2017-07-24 87 views
1

我对Python有一定的使用经验,但我不是专家,所以在这里轻松一下。将Excel或CSV文件转换为Python中的电子邮件地址列表

我有一个Python脚本,可以在一天中向人们发送自动电子邮件报告。现在,电子邮件地址都存储在脚本本身中,但我希望将电子邮件地址存储在外部文件中,其他人可以编辑谁收到它们,而无需打开脚本本身。脚本中有不同的电子邮件列表,我正在努力弄清楚如何将其转换为文件。

因此,对于情况下,这些可能是三个电子邮件列表,因为它们将被存储在Python:

Group_A = ['[email protected]', '[email protected]'] 

Group_B = ['[email protected]', [email protected]'] 

Group_C = ['[email protected]', [email protected]'] 

如何存放它们在外部文件中,并让Python阅读它们作为单独的列表?

我很好用Excel(通过Openpyxl或Pandas读取它)或CSV甚至是txt文档,但是让Python读取文件并将电子邮件地址存储在自己的列表中的最佳方法是什么?列表的名称也需要在文件中设置,因为每个列表都会根据它的名称获取单独的电子邮件。

+0

所以,你基本上要转你的CSV? –

回答

1

如果你把你的电子邮件在一个简单的文本文件是这样的:

$ cat emails.txt 
foo 
bar 
baz 

你可以将它读入的Python这样的:

emails = [] 

with open("emails.txt") as f: 
    for line in f: 
     if len(line.strip()) > 0: 
      emails.append(line.strip()) 

print(emails) 

结果会是这样的:

['foo', 'bar', 'baz'] 

什么是让Python读取文件的最佳方式和将 电子邮件地址存储在他们自己的列表中?列表名称还需要在文件中设置 ,因为每个列表都会根据 取决于其名称。

我只是将每组电子邮件保存到不同的文件,并将该文件的内容读取到您需要的列表中。

文件:

$ cat group_a.txt 
[email protected] 
[email protected] 

$ cat group_b.txt 
[email protected] 
[email protected] 

$ cat group_c.txt 
[email protected] 
[email protected] 

阅读到Python列表:

def readlines(file): 
    lines = [] 
    with open(file) as f: 
     for line in f: 
      if len(line.strip()) > 0: 
       lines.append(line.strip()) 
    return(lines) 

Group_A = readlines("group_a.txt") 
print(Group_A) # ['[email protected]', '[email protected]'] 

Group_B = readlines("group_b.txt") 
print(Group_B) # ['[email protected]', '[email protected]'] 

Group_C = readlines("group_c.txt") 
print(Group_C) # ['[email protected]', '[email protected]'] 
+0

这就是我所掌握的。我想我必须将它们保存为不同的文件。尽管我不想,但它似乎是最合乎逻辑的解决方案。谢谢你的帮助。 – Emac

相关问题