将Excel或CSV文件转换为Python

时间:2017-07-24 17:04:13

标签: python excel pandas csv openpyxl

我有一些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读取文件并将电子邮件地址存储在自己的列表中的最佳方法是什么?还需要在文件中设置列表的名称,因为每个列表都会根据其名称获取单独的电子邮件。

1 个答案:

答案 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']