2014-10-04 140 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