Можно ли объединить следующие два оператора в один оператор?Объединение двух операторов в один оператор
f.write(",".join(str(cell) for cell in row))
f.write("\n")
Можно ли объединить следующие два оператора в один оператор?Объединение двух операторов в один оператор
f.write(",".join(str(cell) for cell in row))
f.write("\n")
Просто сцепить результат join
с '\n'
f.write(",".join(str(cell) for cell in row) + '\n')
Использование строки форматированием:
f.write("{}\n".format(",".join(str(cell) for cell in row)))
Примечание, что это значительно медленнее, чем большинство других методов, в том числе два отдельные записи в соответствии с OP и старый (устаревший) стиль форматирования строки (например, f.write("%s\n", ...)
.
См. str.format()
и Format String Syntax.
Зачем изобретать колесо? 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)
В качестве альтернативы, вы можете сделать с моей оберточной библиотеки pyexcel
:
import pyexcel
rows = [['foo', 1, 2], ['bar', 3, 4]]
w = pyexcel.Writer("file.csv")
w.write_rows(rows)
w.close()
И документация here
Да, но я больше заинтересован в _why_ Вы хотите это. У вашего рабочего места нехватка символов новой строки? :-) – paxdiablo
Вы считали использование ['csv'] (https://docs.python.org/2/library/csv.html) вместо этого? – jonrsharpe