列表到csv,由逗号和新行分隔

2024-09-30 01:35:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表,我想写到一个CSV文件,我想它是由逗号后的新行分隔。 我尝试过writerows,但这会分割所有字符。 我尝试过writerow,但这会让我在一行中使用逗号分隔所有条目,但每个条目都没有换行符

我的尝试

import  csv

mylist = ['AFCIEUR ID', 'CSCIB25 LX' , 'GAMCOIE ID']

writer = open("my_EQ_IDs.csv", 'w+')
writer_out = csv.writer(writer,delimiter='\n')
fields = ['SYMBOL']
writer_out.writerow(fields)
writer_out.writerows(mylist)

这给了我

SYMBOL

A
F
C
I
E
U
R
 
I
D

C
S
C
I
B
2
5
 
L
X

G
A
M
C
O
I
E
 
I
D

如果我使用writerow而不是writerows,我会得到以下结果

SYMBOL

AFCIEUR ID
CSCIB25 LX
GAMCOIE ID

这是接近我想要的,但它不是由逗号分隔,因为我需要。我已尝试将分隔符添加为delimiter=',\n',但这给了我一个错误TypeError: "delimiter" must be a 1-character string

我需要(预期输出)

SYMBOL

AFCIEUR ID,
CSCIB25 LX,
GAMCOIE ID

有人能告诉我我做错了什么,并给我指出正确的方向吗

非常感谢


Tags: csvid条目outsymbolwriterlx逗号
3条回答

尝试在分隔符中包含逗号:delimiter=',\n'

实际结果是由字符串是iterable引起的。您将一个字符串列表传递给writerows,它需要一个iterable的iterable。因此,值的每个字符都被视为一个字段,后跟已设置为新行的字段分隔符

但预期的文件不是有效的csv文件。当Python csv模块仅将分隔符定义为单个字符时,可以使用序列',\n'(2个字符)作为分隔符。因此,您不能期望csv模块产生预期的结果

这意味着您应该手动编写文件。使用join很容易:

with open("my_EQ_IDs.csv", 'w+') as writer:
    print('SYMBOL', file=writer)
    print(',\n'.join(mylist), file=writer)

尝试使用lineterminator='\n'和delimiter=','-应该可以

相关问题 更多 >

    热门问题