我尝试写一个文件,但是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()
# 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')
同样的错误:
TypeError: Can't convert 'int' object to str implicitly
答案 0 :(得分:1)
您的第一行缺少格式占位符:
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'
答案 1 :(得分:0)
您的字符串在某种程度上看起来格格不入 - 如果您要在字符串之间附加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))))
如果您想要进行任何类型的字符串格式化或对齐值,这也使您能够控制输出。