UNIX時間を表すfloat変数obj ["time"]があります。以前は結果をテキストファイルに書き込んでいたので、
fd_out.write("%.6f\n" %(obj["time"]))
結果が 6 桁になるように強制します。しかし、代わりに結果をcsvファイルに出力したいので、次を使用しました:
writer.writerow((obj["time"]))
結果にはデフォルトで 2 桁しかありません。どうすれば変更できますか?
次の例のように、中間形式を使用すると問題が解決するはずです。
writer.writerow(("%.6f" % obj["time"], ))
ファイルに直接書き込んでいたときに、float 変数を必要な桁数の文字列に変換するフォーマット操作を行いました。CSV ライターでもまったく同じことができます。
writer.writerow("%.6f" %(obj["time"]))
コメントで指摘されているように、CSV ライターが改行を追加するため、改行を省略する必要があります。
Specifyingformating for csv.writer in Pythonの以前の回答から:
class TypedWriter:
"""
A CSV writer which will write rows to CSV file "f",
which uses "fieldformats" to format fields.
"""
def __init__(self, f, fieldnames, fieldformats, **kwds):
self.writer = csv.DictWriter(f, fieldnames, **kwds)
self.formats = fieldformats
def writerow(self, row):
self.writer.writerow(dict((k, self.formats[k] % v)
for k, v in row.iteritems()))
def writerows(self, rows):
for row in rows:
self.writerow(row)