2014-01-19 41 views
0

我想写列表写作柱不带引号

someList=["a=1.0,2.0,3.0","b=1.0,2.0,3.0"] 

为单柱,两行的文件,它看起来像(周围的每一行没有引号):

a=1.0,2.0,3.0 
b=1.0,2.0,3.0 

不过,如果我使用下面的代码:

import csv 
myfile = open("/home/user/fileName", 'wb') 
wr = csv.writer(myfile) 
for c in someList: 
    wr.writerow(c) 

那么它不会给我想要的东西:

a,=,1,.,0,",",2,.,0,",",3,.,0 
b,=,1,.,0,",",2,.,0,",",3,.,0 

回答

1

随着数据已经格式化,使用文件对象的write方法写入整个列表到文件中。只要确保在新行添加为行分隔符的加入行:

实施

with open("/home/user/fileName", "w") as fin: 
    fin.write('\n'.join(someList)) 

输出

a=1.0,2.0,3.0 
b=1.0,2.0,3.0 
+1

最后的换行符这不会写入文件,许多文本编辑可能会有点不安。 –

+0

@MartijnPieters:我从来没有遇到过没有尾随换行符的问题。你有这样的编辑器的例子吗? – Abhijit

+1

这不仅仅是文本编辑器,工具处理文件也可能(错误地)假定每行在最后都有一个行分隔符。我目前没有直接的编辑器示例。 –

1

你的线路是已经格式化;它们不是CSV行。

就直接将数据写入文件,用换行:

with open("/home/user/fileName", 'w') as myfile: 
    for line in someList: 
     myfile.write(line + '\n')