2017-07-24 118 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

相關問題