我想使用Python将两个变量写入文件。
基于我所写的in this post所写的内容:
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
答案 0 :(得分:8)
您没有将足够的值传递给%
,您的格式字符串中有两个说明符,因此它需要一个长度为2的元组。试试这个:
f.write("%s %s\n" % (int("0xFF" ,16), int("0xAA", 16)))
答案 1 :(得分:2)
答案 2 :(得分:2)
%运算符采用对象或元组。所以写这个的正确方法是:
f.write("%s %s\n" % (int("0xFF", 16), int("0xAA",16)))
还有许多其他方法可以格式化字符串,文档是你的朋友http://docs.python.org/2/library/string.html
答案 3 :(得分: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)))
答案 4 :(得分:1)
你需要提供一个元组:
f.open('out','w')
f.write("%d %d\n" % (int("0xFF",16), int("0xAA",16)))
答案 5 :(得分:0)
这应该写成:
f.write("255 170\n")