2014-10-04 102 views
1

是否可以将以下两个语句合并为一个语句?将两个语句合并为一个语句

f.write(",".join(str(cell) for cell in row)) 
f.write("\n") 
+0

是的,但我更感兴趣的是_why_你要这个。你的工作场所是否缺乏换行符? :-) – paxdiablo 2014-10-04 13:35:18

+2

您是否考虑过使用['csv'](https://docs.python.org/2/library/csv.html)? – jonrsharpe 2014-10-04 13:38:46

回答

2

正好连接的join结果与'\n'

f.write(",".join(str(cell) for cell in row) + '\n') 
2

使用字符串格式化:

f.write("{}\n".format(",".join(str(cell) for cell in row))) 

这是比大多数其他方法,包括两个显著慢根据OP分别写入,以及旧的(不建议使用的)字符串格式化(例如f.write("%s\n", ...)

请参阅str.format()Format String Syntax

1

为什么要重新发明轮子? The csv module会为你做到这一点:

import csv 

rows = [['foo', 1, 2], ['bar', 3, 4]] 

with open("filename.csv", "w") as f: 
    writer = csv.writer(f) 
    writer.writerows(rows) 
0

或者,你可以用我的包装库pyexcel做:

import pyexcel 

rows = [['foo', 1, 2], ['bar', 3, 4]] 
w = pyexcel.Writer("file.csv") 
w.write_rows(rows) 
w.close() 

和文档是here