2013-10-29 77 views
-3

我嘗試寫入文件,但python給了我一個錯誤。Python - TypeError:不能將'int'對象隱式轉換爲str

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

你的兩個代碼都在爲我工作。 –

+0

@hcwhsa目前還不清楚第一個做的是什麼... OP使用格式化字符串的方法,但是格式化字符串中沒有'{}'。 – SethMMorton

+0

@hcwhsa:除了沒有佔位符,所以隨機值被忽略。 –

回答

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))) 

它是{}佔位符t帽子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' 
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)))) 

如果您想要執行任何類型的字符串格式設置或對齊值,則還可以控制輸出。

相關問題