首页 > 解决方案 > 我想将列表保存在 .csv 文件中。列表中的每个 \n 都应在文件中创建一个新行

问题描述

示例列表:

line = ['New York;New\nBerlin;Ber\nMelbourne;Mel']

我列表中的每个第二个元素都包含一个 \n。

with open('file.csv', 'w', newline='') as csvfile:
save = csv.writer(csvfile)
y = list.count("\n")
for line in range(0, y):
    save.writerow(str(list))

.csv 文件应如下所示:

NewYork;New
Berlin;Ber
Melbourne;Mel

我的目标是在 excel 中显示列表。这应该是这样的:

纽约 | 新
柏林 | 贝尔
墨尔本 | 梅尔

| = 新列

保存过程需要是什么样的?

标签: pythonpython-3.xcsv

解决方案


您的列表不是 Python 列表,如果其中包含一个字符串,它应该是这样\n的。

lines = ["New York;New\nBerlin;Ber\nMelbourne;Mel"]

或者如果它包含多个带有 '\n' 的字符串,则像这样

lines = ["New York;New\nBerlin;Ber\nMelbourne;Mel",
         "Ber\nMelbourne;Mel\nNew York;New\nBerlin",
         ...
         ]

此外,还不是很清楚您要从您编写的代码中实现什么,但问题似乎是您有一个包含换行符的字符串列表,并且您想在 '\n 处换行' 同时将其写入 csv 文件。

代码很简单

import csv
# this list is explained above
lines = ["New York;New\nBerlin;Ber\nMelbourne;Mel", "New York;New\nBerlin;Ber\nMelbourne;Mel"]
lines = [[word] for line in lines for word in line.split('\n')]
with open('file.csv', 'w') as fh:
    csv_writer = csv.writer(fh)
    csv_writer.writerows(lines)  

此外,由于您没有谈论列,我建议请阅读 CSV 文件,您可能不需要 CSV 文件。

更新

阅读您的评论后,我相信您有一大串内容,并且将上述代码中的前两行更改为此应该可以工作。

content = "first colum first line; second colum first line \n first colum second line; second colum second line"
lines = [line.split(';') for line in content.split('\n')]

推荐阅读