【问题标题】:Convert this list of lists in CSV在 CSV 中转换此列表列表
【发布时间】:2017-10-16 15:33:14
【问题描述】:

我是 Python 新手,在多次搜索如何将列表列表转换为 CSV 文件后,我没有找到解决问题的方法。

这是我的代码:

#!C:\Python27\read_and_convert_txt.py
import csv

if __name__ == '__main__':

with open('c:/python27/mytxt.txt',"r") as t:
    lines = t.readlines()
    list = [ line.split() for line in lines ]

with open('c:/python27/myfile.csv','w') as f:
    writer = csv.writer(f)
    for sublist in list:
        writer.writerow(sublist)

第一个open()会从txt文件中创建一个列表列表,比如

list = [["hello","world"], ["my","name","is","bob"], .... , ["good","morning"]]

然后第二部分会将列表列表写入 csv 文件,但仅在第一列中。

我需要的是从这个列表列表中将其写入 csv 文件,如下所示:

Column 1, Column 2, Column 3, Column 4 ......
hello     world      
my        name      is        bob
good      morning

当我用 txtpad 打开 csv 文件时恢复:

hello;world
my;name;is;bob
good;morning    

【问题讨论】:

  • 奇怪,默认分隔符是逗号,而不是分号。但无论如何:你能试试吗:writer = csv.writer(f,delimiter="\t")
  • 注意:直接使用writer.writerows(list)。并且不要使用list作为变量名
  • 这不是您的实际缩进。这不会运行。请修正你的缩进。

标签: python list csv


【解决方案1】:

我不知道这是不是你想要的:

list = [["hello","world"], ["my","name","is","bob"] , ["good","morning"]]
with open("d:/test.csv","w") as f:
    writer = csv.writer(f, delimiter=";")
    writer.writerows(list)

作为输出文件提供:

hello;world
my;name;is;bob
good;morning

【讨论】:

  • 你好 Bart,它可以工作,但我不知道为什么每行之间有一个空行。不过谢谢你的回答
【解决方案2】:

只需使用 pandas 数据框

import pandas as pd
df = pd.DataFrame(list)
df.to_csv('filename.csv')

默认情况下,缺失值会用None来代替None使用

df.fillna('', inplace=True)

所以你的最终代码应该是这样的

import pandas as pd
df = pd.DataFrame(list)
df.fillna('', inplace=True)
df.to_csv('filename.csv')

干杯!!!

注意:你不应该使用 list 作为变量名,因为它是 python 中的关键字。

【讨论】:

    猜你喜欢
    • 2017-05-13
    • 2015-04-01
    • 2016-01-15
    • 2021-05-13
    • 2021-09-08
    • 1970-01-01
    • 2011-03-06
    • 2017-08-25
    • 2019-12-17
    相关资源
    最近更新 更多