python'int'对象str隐式错误

时间:2014-01-24 13:48:33

标签: python

任何人都可以帮我解决这个python程序的问题,它一直给我一个错误。

import os
import time
import random
from random import randint
import string
count = 0

number = 1
while (count < 50):
    print(number)
    os.mkdir(number)
    count = count + 1
    number = number + 1
    print(number)
print("done")
time.sleep(5)

提前感谢。

3 个答案:

答案 0 :(得分:4)

您向int提供mkdir参数。您需要先将此int转换为str

os.mkdir(str(number))

答案 1 :(得分:1)

os.mkdir采用字符串,而不是整数。只是做

os.mkdir( str(number) )

而不是

os.mkdir(number) 

请注意,运行脚本时获得的异常应该足够明确:

TypeError: coercing to Unicode: need string or buffer, int found

答案 2 :(得分:1)

os.mkdir()需要文件路径作为参数。

>>> import os
>>> x = 100
>>> os.mkdir(x)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: coercing to Unicode: need string or buffer, int found
>>> os.mkdir(str(x))
>>> os.path.exists(str(x))
True
>>> os.mkdir(str(x))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 17] File exists: '100'