3

Python を使用して 2 つの変数をファイルに書き込みたい。

この投稿に記載されている内容に基づいて、私は次のように書きました。

f.open('out','w')
f.write("%s %s\n" %str(int("0xFF",16)) %str(int("0xAA",16))

しかし、私はこのエラーが発生します:

Traceback (most recent call last):
  File "process-python", line 8, in <module>
    o.write("%s %s\n" %str(int("0xFF", 16))  %str(int("0xAA", 16)))
TypeError: not enough arguments for format string
4

6 に答える 6

11

に十分な値を渡していません%。フォーマット文字列に 2 つの指定子があるため、長さ 2 のタプルが必要です。これを試してください:

f.write("%s %s\n" % (int("0xFF" ,16), int("0xAA", 16)))
于 2013-05-29T19:13:49.143 に答える
3

このように使用することをお勧めしますformat

'{0} {1}\n'.format(int("0xFF",16), int("0xAA",16))

intでラップする必要もありませんstr

于 2013-05-29T19:14:36.883 に答える
2

まず、ファイルを開くのが間違っているのf.open('out', 'w')は、おそらく次のようになるはずです。

f = open('out', 'w')

print次に、このような単純な書式設定のために、Python 2.x の場合、次のように使用できます。

print >> f, int('0xff', 16), int('0xaa', 16)

または、Python 3.x の場合:

print(int('0xff', 16), int('0xaa', 16), file=f)

それ以外の場合は、次を使用します.format

f.write('{} {}'.format(int('0xff', 16), int('0xaa', 16)))
于 2013-05-29T19:25:38.653 に答える
2

% 演算子は、オブジェクトまたはタプルを取ります。したがって、これを書く正しい方法は次のとおりです。

f.write("%s %s\n" % (int("0xFF", 16), int("0xAA",16)))

文字列をフォーマットする方法は他にもたくさんあります。ドキュメントはあなたの友人ですhttp://docs.python.org/2/library/string.html

于 2013-05-29T19:17:22.860 に答える