2014-02-27 73 views
1

我正在運行一個外部函數,該函數應該返回一個字符串 - 但有時,此函數失敗且字符串爲空。我想要的行爲是「如果字符串是空的(即將發生值錯誤),而不是打印'?' 。字符串到我的CSV)Python - 處理值錯誤

這裏是我的代碼:

outlist = output.split('\r\n') #splitting the string 
    outrank1 = outlist[1][outlist[1].index(':')+1:] 
    outrank2 = outlist[2][outlist[2].index(':')+1:] 
    print outrank1 
    print outrank2 
    print str(outlist[0]) 
    print str(outlist[1]) 
    print str(outlist[2]) 
    csvout.writerow([str(outlist[0]), str(outrank1), str(outrank2)]) #writing,error here 

這裏是錯誤的樣本,我遇到:

Traceback (most recent call last): 
    File "Methods.py", line 24, in <module> 
    outrank2 = outlist[2][outlist[2].index(':')+1:] 
ValueError: substring not found 

在這種情況下,而不是錯誤我會喜歡保存'?'在outrank2。我怎樣才能做到這一點?

回答

4

你可以包裝在一個try-除了

try: 
    outrank2 = outlist[2][outlist[2].index(':')+1:] 
except ValueError: 
    outrank2 = "?" 
+0

完美,謝謝:) –

0
try: 
    outrank1 = outlist[1][outlist[1].index(':')+1:] 
except ValueError: 
    outrank1 = "?"