我有一些Python的经验,但我不是专家,所以在这里轻松一点。
我有一个Python脚本,可以全天向人们发送自动电子邮件报告。现在,电子邮件地址都存储在脚本本身中,但我希望将电子邮件地址存储在外部文件中,其他人可以编辑接收它们的人,而无需打开脚本本身。脚本中有不同的电子邮件列表,我正在努力弄清楚如何将其转换为文件。
因此,对于实例,这些可能是三个电子邮件列表,因为它们将存储在Python中:
Group_A = ['ABC@yahoo.com', 'def@gmail.com']
Group_B = ['xyz@yahoo.com', tuv@gmail.com']
Group_C = ['hij@yahoo.com', klm@gmail.com']
如何将它们存储在外部文件中并让Python将它们作为单独的列表读取?
我可以使用Excel(通过Openpyxl或Pandas读取)或CSV甚至是txt文档,但是让Python读取文件并将电子邮件地址存储在自己的列表中的最佳方法是什么?还需要在文件中设置列表的名称,因为每个列表都会根据其名称获取单独的电子邮件。
答案 0 :(得分: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
ABC@yahoo.com
def@gmail.com
$ cat group_b.txt
xyz@yahoo.com
tuv@gmail.com
$ cat group_c.txt
hij@yahoo.com
klm@gmail.com
将它们读入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) # ['ABC@yahoo.com', 'def@gmail.com']
Group_B = readlines("group_b.txt")
print(Group_B) # ['xyz@yahoo.com', 'tuv@gmail.com']
Group_C = readlines("group_c.txt")
print(Group_C) # ['hij@yahoo.com', 'klm@gmail.com']