繁体   English   中英

如何从python列表生成CSV文件,并将每个列表项放在单独的行中

[英]How to I generate a CSV file from a python list with each list item in a seperate row

我已经尝试过从另一个问题中获得的一些代码(list_of_paths是我在代码中先前生成的列表)

myfile = open('/home/graham/Desktop/Experiment/listcsv.csv', 'wb')
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
wr.writerow(list_of_paths)

但是它将整个列表放在一个单元格中。 我希望每个项目都在不同的行中。 如果可以,我用于CSV文件的程序是LibreOffice Calc。

使用writerows ,如下所示:

myfile = open('/home/graham/Desktop/Experiment/listcsv.csv', 'wb')
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
wr.writerows([path] for path in list_of_paths)

我将使用标准的输入/输出来实现这一点。

$ cat getCSV.py 
input_list = range(10)   # replace range(10) with your list
for elem in input_list:
    print '"' + str(elem) + '"'

$ python getCSV.py > output.csv
$ cat output.csv 
"0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"

如果列表中的每个elem都是列表或元组,那么您可以使用join命令将它们分成几列。

>>> row = [str(i) for i in range(10)]
>>> row
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
>>> ','.join(row)
'0,1,2,3,4,5,6,7,8,9'
>>> ','.join(['"' + col + '"' for col in row])
'"0","1","2","3","4","5","6","7","8","9"'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM