Python3 仅从 csv 文件中提取电子邮件

Python3 Extracting only emails from csv file

我已经编写了一个可以从 .csv 文件中提取信息的工作脚本。但是,当我编写代码专门查找@符号时,它会在提取时打印出所有信息而不是电子邮件。

 #!/bin/python3
    import re
    def print_csv():
            in_file = open('sample._data.csv', 'rt')
            for line in in_file:
                    if re.findall(r'(.*)@(.*).(.*)', line):
                            print(line)
    print_csv()

这是输出示例:

"Carlee","Boulter","Tippett, Troy M Ii","8284 Hart St","Abilene","Dickinson","KS",67410,"785-347-1805","785-253-7049","carlee.boulter@hotmail.com","http://www.tippetttroymii.com"

"Thaddeus","Ankeny","Atc Contracting","5 Washington St #1","Roseville","Placer","CA",95678,"916-920-3571","916-459-2433","tankeny@ankeny.org","http://www.atccontracting.com"

"Jovita","Oles","Pagano, Philip G Esq","8 S Haven St","Daytona Beach","Volusia","FL",32114,"386-248-4118","386-208-6976","joles@gmail.com","http://www.paganophilipgesq.com"

"Alesia","Hixenbaugh","Kwikprint","9 Front St","Washington","District of Columbia","DC",20001,"202-646-7516","202-276-6826","alesia_hixenbaugh@hixenbaugh.org","http://www.kwikprint.com"

"Lai","Harabedian","Buergi & Madden Scale","1933 Packer Ave #2","Novato","Marin","CA",94945,"415-423-3294","415-926-6089","lai@gmail.com","http://www.buergimaddenscale.com"

"Brittni","Gillaspie","Inner Label","67 Rv Cent","Boise","Ada","ID",83709,"208-709-1235","208-206-9848","bgillaspie@gillaspie.com","http://www.innerlabel.com"

"Raylene","Kampa","Hermar Inc","2 Sw Nyberg Rd","Elkhart","Elkhart","IN",46514,"574-499-1454","574-330-1884","rkampa@kampa.org","http://www.hermarinc.com"

"Flo","Bookamer","Simonton Howe & Schneider Pc","89992 E 15th St","Alliance","Box Butte","NE",69301,"308-726-2182","308-250-6987","flo.bookamer@cox.net","http://www.simontonhoweschneiderpc.com"

"Jani","Biddy","Warehouse Office & Paper Prod","61556 W 20th Ave","Seattle","King","WA",98104,"206-711-6498","206-395-6284","jbiddy@yahoo.com","http://www.warehouseofficepaperprod.com"

"Chauncey","Motley","Affiliated With Travelodge","63 E Aurora Dr","Orlando","Orange","FL",32804,"407-413-4842","407-557-8857","chauncey_motley@aol.com","http://www.affiliatedwithtravelodge.com"

我想要做的是让输出看起来像一个电子邮件列表。我无法从 csv 文件中过滤掉其他内容。

如上所述,您应该能够使用内置的 csv 库。如果文件是 csv,那么它应该具有结构化格式,即使它没有列名,您也应该能够按列位置提取它。根据您的样本数据,您可以按位置获得正确的列。请查看 official Python docs

>>> import os
>>> import csv
>>> with open('sample._data.csv', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=',',quotechar='"')
    for row in reader:
        print(row[10])

    # output:   
carlee.boulter@hotmail.com
tankeny@ankeny.org
joles@gmail.com
alesia_hixenbaugh@hixenbaugh.org
lai@gmail.com
bgillaspie@gillaspie.com
rkampa@kampa.org
flo.bookamer@cox.net
jbiddy@yahoo.com
chauncey_motley@aol.com