2017-04-11 85 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

相關問題