2009-06-03 7 views
7

私はファイルに書き込む必要がある幅44カラムのデータテーブルを持っています。私は書きたくない:FortranでにはPythonで複数の書式指定子がありますか?

outfile.write("%i,%f,%f,$f ...)\n" % (i, a,b,c ...)) 

を使えば、簡単に複数のフォーマット指定子を指定することができます。

write (*,"(3f8.3)") a,b,c 

はPythonで同様の機能はありますか?

答えて

20
>>> "%d " * 3 
'%d %d %d ' 
>>> "%d " * 3 % (1,2,3) 
'1 2 3 ' 
+0

投稿のおかげで、私はこれを知らなかった。 print "%d" * 3%(1,2,3) – PTBNL

+3

*演算子は書式指定子に固有ではないことに注意してください。先行するシーケンスをX回複製するようにPythonに指示します。文字列はシーケンスなので、フォーマット指定子は文字列だけです... –

+0

@ChrisB .: "_duplicate X times_"ではなく、 "_multiply X times_"と思っています:前者は%d "* 3"は '(("% "* 2)* 2)* 2)と等しくなります。 – Tadeck

3

あなたはおよそ

format= "%i" + ",%f"*len(row) + "\n" 
outfile.write(format % ([i]+row)) 
0

を求めているが、まったく同じではありませんが、あなたはこのような何か試すことができます:私はそれがにはるかに良いと思う

values=[1,2.1,3,4,5] #you can use variables instead of values of course 
outfile.write(",".join(["%f" % value for value in values])); 
0

注意を

outfile.write(", ".join(map(str, row))) 

...そうではありませんあなたが求めているのですが、いくつかの点で優れています。

関連する問題