用python把list里的数据写入csv

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用python把list里的数据写入csv相关的知识,希望对你有一定的参考价值。

这样一个列表
[(u'apple ios', u'apple iOS', u'$400'),
(u'like new', u'5', u'$149'),
(u'apple iOS', u'apple iOS', u'$900'),
(u'excellent', u'6 Plus', u'$550'),
(u'like new', u'apple iOS', u'$279'),
(u'like new', u'4', u'$59')]

怎么写成csv呢,按列名是状态,状态,价格

result = [(u'apple iOS', u'apple iOS', u'$400'),
          (u'like new', u'5', u'$149'),
          (u'apple iOS', u'apple iOS', u'$900'),
          (u'excellent', u'6 Plus', u'$550'),
          (u'like new', u'apple iOS', u'$279'),
          (u'like new', u'4', u'$59')]
with open('data.csv', 'wb') as f:
    for item in result:
        line = ','.join(item) + '\\n'
        f.write(line.encode('utf-8'))

参考技术A

最常用的一种方法,利用pandas包

import pandas as pd#任意的多组列表a = [1,2,3]
b = [4,5,6]    

#字典中的key值即为csv中列名dataframe = pd.DataFrame('a_name':a,'b_name':b)#将DataFrame存储为csv,index表示是否显示行名,default=Truedataframe.to_csv("test.csv",index=False,sep=',')1234567891011
a_name  b_name0       1       41       2       52       3       6

同样pandas也提供简单的读csv方法,

import pandas as pddata = pd.read_csv('test.csv')12

会得到一个DataFrame类型的data。

另一种方法用csv包,一行一行写入

import csv

#python2可以用file替代open
with open("test.csv","w") as csvfile:
writer = csv.writer(csvfile)

#先写入columns_name
writer.writerow(["index","a_name","b_name"])
#写入多行用writerows
writer.writerows([[0,1,3],[1,2,3],[2,3,4]])12345678910
index   a_name  b_name0       1       31       2       32       3       41234

读取csv文件用reader

import csvwith open("test.csv","r") as csvfile:
reader = csv.reader(csvfile)    #这里不需要readlines
for line in reader:
print line

参考技术B 外层 for 循环,内层 for 循环,tuple 强转 list 。当然也有其他方法实现 循环。 参考技术C Python | 怎么读写csv文件
http://jingyan.baidu.com/article/f0e83a259f33c722e4910163.html

用Python读取文件中的数字并加入list的问题

我的文件是txt格式(testdata.txt),文件里的数据是:
20 1
16
14
18
10
12
19
20
8
17
3
13
2
15
7
1
6
11
4

第一行两个数字,
然后我用代码
f = open('testdata.txt')
s = f.read()
print(s)
array = []
for line in s:
array.append(line)
print(array)
从文档中读取数据并且加入array,然而结果是这样的:['2', '0', ' ', '1', '\n', '1', '6', '\n', '1', '4', '\n', '1', '8', '\n', '1', '0', '\n', '1', '2', '\n', '1', '9', '\n', '2', '0', '\n', '8', '\n', '1', '7', '\n', '3', '\n', '1', '3', '\n', '2', '\n', '1', '5', '\n', '7', '\n', '1', '\n', '6', '\n', '1', '1', '\n', '4', '\n', '9', '\n']
也就是说它不但是一个数一个数读的(20被拆成了2和0),而且空格和换行符号都在里面。
我现在需要一个方式把这些数据按照每个整数添加到array里面,而且不能有空格和换行(因为我要用到每个数字的位置,如果中间有空格的话位置就改变了)

求大神给一个修改的建议或者正确的代码写法,小白在此谢谢谢谢谢谢谢过各位了QAQQQ

参考技术A array = []

for line in open('testdata.txt'):
    array.extend(line.strip().split(' '))

array = map(int, array)
print(array)

追问

谢谢帮助!!!!QAQ但是似乎还是有点问题,我现在的情况是,print出来之后显示这个:
请问这个是什么意思呢QAQ

追答

哦 ,只是一个类型问题而已,你改成
print(list(array))
就可以了。

追问

嗷嗷嗷嗷嗷嗷啊大神啊 给我一个签名吧QWQ!!!!!!!

本回答被提问者和网友采纳

以上是关于用python把list里的数据写入csv的主要内容,如果未能解决你的问题,请参考以下文章

用Python读取文件中的数字并加入list的问题

用java怎么才能在csv文件指定位置写入新的数据,csv原始数据保留。

python 如何将数据写入某个csv文件的特定位置?

matlab用writetable写入csv的

Python 如何把json数据写入excel

如何将vb中的数据写入csv文件?