私はいくつかの数値(numとしましょう)を生成し、数値を出力ファイルに書き込んでいますがoutf.write(num).
、コンパイラはエラーをスローしています:
"outf.write(num)
TypeError: argument 1 must be string or read-only character buffer, not int".
どうすればこの問題を解決できますか?
私はいくつかの数値(numとしましょう)を生成し、数値を出力ファイルに書き込んでいますがoutf.write(num).
、コンパイラはエラーをスローしています:
"outf.write(num)
TypeError: argument 1 must be string or read-only character buffer, not int".
どうすればこの問題を解決できますか?
write()は単一の文字列引数しかとらないため、次のようにすることができます。
outf.write(str(num))
また
outf.write('{}'.format(num)) # more "modern"
outf.write('%d' % num) # deprecated mostly
またwrite
、出力に改行を追加しないことに注意してください。必要な場合は、自分で指定する必要があります。
余談:
文字列フォーマットを使用すると、出力をより細かく制御できるため、たとえば、次のように記述できます (これらはどちらも同等です)。
num = 7
outf.write('{:03d}\n'.format(num))
num = 12
outf.write('%03d\n' % num)
3 つのスペースを取得するには、整数値の先行ゼロとそれに続く改行を使用します。
007
012
format()は長い間存在するため、学習/知る価値があります。
これらのいずれかが機能するはずです
outf.write("%s" % num)
outf.write(str(num))
print >> outf, num