2012-07-18 42 views
-3

我試圖使這個代碼打開prodname的變量爲一個int值:如何將str轉換爲int?

def prod_check(dirname): 
    prodname_to_prodnum = {} 
    fid2 = open('sample.txt','r') 
    line = fid2.readline() 
    line = line.strip() 
    pline = line.split(',') 
    prodname = (pline[0])[1:-1] 
    prodnum = prodname 
    prodname_to_prodnum[prodname] = prodnum 
    line = fid2.readline() 
    fid2.close() 

,但是當我用「INT(PRODNAME)」我得到一個錯誤

+1

你究竟在做什麼'int(prodname)'和'prodname'的值是什麼? – mgilson 2012-07-18 20:28:05

+1

aaaand有什麼錯誤? – 2012-07-18 20:28:16

+0

試圖使整數在它說「prodnum = prodname」,但就像我說我嘗試過「int()」,但沒有運氣。錯誤是「值錯誤:無效文字爲int <>與花瓶10:'詹姆斯Sakolov'」Prodname是一個數字的字符串。 – Ferdinand 2012-07-18 20:32:48

回答

2

試試這個,而不是prodnum = prodname

try: 
    prodnum = int(prodname) 
except ValueError: 
    prodnum = None 
    print('prodname = ',prodname) 
2

Python中的列表是基於0的,而不是基於1的。您已將該行劃分爲split字段,因此您應該使用prodnum = int(pline[0])來獲取第一個字段。

編輯:我希望人們會使用複製/粘貼將他們的代碼放入問題中,錯別字會造成所有差異。

我不知道爲什麼你要從數字字段中刪除第一個和最後一個字符,也許是因爲你需要從它刪除空白?如果是這樣,請嘗試使用prodnum = int(pline[0].strip())