Python-TypeError:Can';t转换为';int';对象隐式地访问str
我试图写入一个文件,但python给了我一个错误Python-TypeError:Can';t转换为';int';对象隐式地访问str,python,Python,我试图写入一个文件,但python给了我一个错误 f.write('20/10/2013;SP;83428407;10:00;-;10:30;'.format(random.randrange(0,6))+';'.format(random.randrange(0,6))+';:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0'+'\n') 也可以尝试使用str() 同样的错误: TypeError: Can't convert 'int'
f.write('20/10/2013;SP;83428407;10:00;-;10:30;'.format(random.randrange(0,6))+';'.format(random.randrange(0,6))+';:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0'+'\n')
也可以尝试使用str()
同样的错误:
TypeError: Can't convert 'int' object to str implicitly
您的第一行缺少格式占位符:
f.write('20/10/2013;SP;83428407;10:00;-;10:30;{};{};:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n'.format(
random.randrange(0,6), random.randrange(0,6)))
str.format()
填充的是{}
占位符。请注意,您只需要一个字符串,并在其中填入str.format()
的参数
演示输出:
>>> import random
>>> '20/10/2013;SP;83428407;10:00;-;10:30;{};{};:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n'.format(
... random.randrange(0,6), random.randrange(0,6))
'20/10/2013;SP;83428407;10:00;-;10:30;0;5;:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n'
>>> '20/10/2013;SP;83428407;10:00;-;10:30;{};{};:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n'.format(
... random.randrange(0,6), random.randrange(0,6))
'20/10/2013;SP;83428407;10:00;-;10:30;3;1;:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n'
您的字符串在某种程度上看起来格式不正确——如果您希望在字符串之间附加randrange值,则需要在格式的两侧添加“+”
f.write('20/10/2013;SP;83428407;10:00;-;10:30;'+str(random.randrange(0,6))+';'+str(random.randrange(0,6))+';:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n')
不过,创建一个字符串并显式插入值通常更为清晰
f.write('20/10/2013;SP;83428407;10:00;-;10:30;%s;%s;:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n' % (str(random.randrange(0,6)), str(random.randrange(0,6))))
如果您想进行任何类型的字符串格式化或值对齐,这也使您能够控制输出。您的两个代码都适用于我。@hcwhsa不清楚第一个代码在做什么。。。OP正在使用字符串的
格式
方法,但要格式化的字符串中没有{}
。@hcwhsa:除了没有占位符之外,因此将忽略随机值。旁白:如果使用分号分隔值格式的数据,你可能想看看这个模块。这个错误似乎在其他地方,因为它对我有效(用print替换f.write并导入random),但是f.write可能是任何东西。
f.write('20/10/2013;SP;83428407;10:00;-;10:30;%s;%s;:00:15;:03:12;;;0;2;:00:58;50,0;2;0;0;0;0;0;0;0;0;0\n' % (str(random.randrange(0,6)), str(random.randrange(0,6))))