2017-04-11 83 views
-2

我有下面的代码片断:的Python - ValueError异常:无效字面对于int()与底座10: 'XYZ'

for image_name in images: 
    img_id = int(image_name.split('.')[0]) 
    img = skimage.io.imread(os.path.join(train_data_path, image_name)) 
    img = np.array([img]) 

而得到以下错误:

Traceback (most recent call last): 
    File "data_original.py", line 99, in <module> 
    create_test_data() 
    File "data_original.py", line 74, in create_test_data 
    img_id = int(image_name.split('.')[0]) 
ValueError: invalid literal for int() with base 10: 'ISIC_1000' 

我试图更换int通过float,但得到了以下错误:

Traceback (most recent call last): 
    File "data_original.py", line 97, in <module> 
    create_test_data() 
    File "data_original.py", line 72, in create_test_data 
    img_id = float(image_name.split('.')[0]) 
ValueError: could not convert string to float: 'ISIC_1000' 

我该如何解决上述问题?

感谢。

+2

'ISIC_1000'不是一个整数。或者你需要把它作为一个字符串存储起来或者去掉'ISIC_' –

+1

你输入到int()或float()中的内容不能转换为整数或浮点数。 –

+2

您正在尝试将字符串'“ISIC_1000”'转换为数字,并且它不是一个数字。 – DyZ

回答

0

您必须确保传递给int()这样的说法是可转化为数字,假设:image_name.split('.')[0]返回一个包含刺字母(AZ)或一些其他的字符不属于编号(例如:“某某”或“ISIC_1000”) 。您可以使用try/except

相关问题