在单元格中写入带分隔符的CSV文件(两点)

2024-06-25 05:39:29 发布

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

如何将以下内容写入.csv文件:

1171837, 1974:3655:1862:279:1936
1172, 238:1833:228:234:1821:225:211:245:1941:315:2035:222:3371:231:224:216:1942

而不是这样:

1171837, ['1974', '3655', '1862', '279', '1936']
1172, ['238', '1833', '228', '234', '1821', '225', '211', '245', '1941', '315', '2035', '222', '3371', '231', '224', '216', '1942']

以下是我的清单:

lche=['1171837', '1172']
ltarg=[['1974', '3655', '1862', '279', '1936'],
       ['238', '1833', '228', '234', '1821', '225', '211', '245', '1941',
        '315', '2035', '222', '3371', '231', '224', '216', '1942']]

我就是这样做的。我不知道如何使用其他分隔符。你知道吗

data="list.csv"
csv_out = open(data, 'wb')
mywriter = csv.writer(csv_out)
for row in zip(lche,ltarg):
    mywriter.writerow(row)
csv_out.close()

Tags: 文件csvinfordataopenoutlist
3条回答

可以将join的元素与冒号一起ltarg

>>> ltarg2 = list()
>>> for elem in ltarg:
...     ltarg2.append(':'.join(elem))
...     
>>> ltarg2
['1974:3655:1862:279:1936', '238:1833:228:234:1821:225:211:245:1941:315:2035:222:3371:231:224:216:1942']

然后继续使用新列表:

for row in zip(lche,ltarg2):

您可以使用join

尝试:

import csv
lche=['1171837', '1172']
ltarg=[['1974', '3655', '1862', '279', '1936'], ['238', '1833', '228', '234', '1821', '225', '211', '245', '1941', '315', '2035', '222', '3371', '231', '224', '216', '1942']]

data="list.csv"
csv_out = open(data, 'wb')
mywriter = csv.writer(csv_out)
l = [':'.join(x) for x in ltarg]
for row in zip(lche,l):
    mywriter.writerow(row)
csv_out.close()

您需要将join中的子列表组合成单个字符串,同时ziplche列表ping其内容。你知道吗

import csv

lche = ['1171837', '1172']
ltarg = [['1974', '3655', '1862', '279', '1936'],
         ['238', '1833', '228', '234', '1821', '225', '211', '245', '1941', 
          '315', '2035', '222', '3371', '231', '224', '216', '1942']]

data = "list.csv"
with open(data, 'wb') as csv_out:
    mywriter = csv.writer(csv_out)
    for row in zip(lche, (':'.join(v for v in lt) for lt in ltarg)):
        mywriter.writerow(row)

之后list.csv文件的内容:

1171837,1974:3655:1862:279:1936
1172,238:1833:228:234:1821:225:211:245:1941:315:2035:222:3371:231:224:216:1942

相关问题 更多 >