提问者:小点点

Python列表到csv文件,每个项目都在新行中


我正在尝试编写一个函数,该函数接收字符串列表,并将列表中的每个字符串作为csv文件中的一个单独行写入,但没有得到任何输出。你能帮我理解我做错了什么吗。这是我的密码:

 import sys 
 import os
 import csv

 list= ['name@domain.com', 'name@domain.com', 'name@domain.com', 'name@domain.com', 'name@domain.com', 'name@domain.com']

 def write_to_csv(list_of_emails):
     with open('emails.csv', 'w', newline='') as csvfile:
         writer = csv.writer(csvfile, delimiter = ',')
         writer.writerows(list_of_emails)

write_to_csv(list)  

共3个答案

匿名用户

你为什么不试着用熊猫来代替呢。这非常简单。:)

lst = ['name@domain.com', 'name@domain.com', 'name@domain.com', 'name@domain.com', 'name@domain.com', 'name@domain.com']

第一,进口包装

import pandas

然后,创建数据帧

df = pandas.DataFrame(data={"email": lst})

然后,导出到csv:)

df.to_csv("./mycsv.csv", sep=',',index=False)

完成:)让我知道这个是否适合你!

匿名用户

如果您只是将每个字符串写在单独的行上,您可以保持简单,只需使用\n:

lst= ['name1@domain.com', 'name2@domain.com', 'name3@domain.com']

def write_to_csv(list_of_emails):
    with open('emails.csv', 'w') as csvfile:
        for domain in list_of_emails:
            csvfile.write(domain + '\n')

write_to_csv(lst)

哪些产出:

name1@domain.com
name2@domain.com
name3@domain.com

您也不应该使用list作为变量名,因为它隐藏了内置函数list

匿名用户

您可以将分隔符='\n'csv一起使用。作家writerow(注意,不是writerows)。此外,newline='不需要作为open的参数。

import sys 
import os
import csv

L = ['name1@domain.com', 'name2@domain.com', 'name3@domain.com']

def write_to_csv(list_of_emails):
    with open('emails.csv', 'w') as csvfile:
        writer = csv.writer(csvfile, delimiter='\n')
        writer.writerow(list_of_emails)

write_to_csv(L)