我有一长串这样的表格——

a = [[1.2,'abc',3],[1.2,'werew',4],........,[1.4,'qew',2]]

也就是说,列表中的值是不同类型的——float,int, strings。我如何将它写入csv文件,使我的输出csv文件看起来像这样

1.2,abc,3
1.2,werew,4
.
.
.
1.4,qew,2

当前回答

如果出于某种原因你想手动执行(不使用csv,pandas,numpy等模块):

with open('myfile.csv','w') as f:
    for sublist in mylist:
        for item in sublist:
            f.write(item + ',')
        f.write('\n')

当然,滚动您自己的版本可能容易出错且效率低下……这就是为什么会有专门的模块。但有时自己写可以帮助你理解它们是如何工作的,有时只是更简单。

其他回答

Python内置的CSV模块可以轻松处理:

import csv

with open("output.csv", "wb") as f:
    writer = csv.writer(f)
    writer.writerows(a)

这假设你的列表被定义为a,就像你的问题一样。您可以通过CSV .writer()的各种可选参数调整输出CSV的确切格式,如上面链接的库参考页中所记录的那样。

Python 3更新

import csv

with open("out.csv", "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerows(a)

你可以用熊猫:

In [1]: import pandas as pd

In [2]: a = [[1.2,'abc',3],[1.2,'werew',4],[1.4,'qew',2]]

In [3]: my_df = pd.DataFrame(a)

In [4]: my_df.to_csv('my_csv.csv', index=False, header=False)
import csv
with open(file_path, 'a') as outcsv:   
    #configure writer to write standard csv file
    writer = csv.writer(outcsv, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
    writer.writerow(['number', 'text', 'number'])
    for item in list:
        #Write item to outcsv
        writer.writerow([item[0], item[1], item[2]])

官方文档:http://docs.python.org/2/library/csv.html

如果出于某种原因你想手动执行(不使用csv,pandas,numpy等模块):

with open('myfile.csv','w') as f:
    for sublist in mylist:
        for item in sublist:
            f.write(item + ',')
        f.write('\n')

当然,滚动您自己的版本可能容易出错且效率低下……这就是为什么会有专门的模块。但有时自己写可以帮助你理解它们是如何工作的,有时只是更简单。

如果您不想为此导入csv模块,您可以只使用Python内置程序将列表的列表写入csv文件

with open("output.csv", "w") as f:
    for row in a:
        f.write("%s\n" % ','.join(str(col) for col in row))