2017-04-24 50 views
0

我是新來的python,我想在腳本下面運行。我得到IO錯誤沒有找到這樣的組。如果None對象在那裏,我特別提到不要輸入。在python腳本中沒有這樣的組錯誤

任何幫助,非常感謝。

錯誤:

T663xt 
count value inside if loop T663xt 
After appending ['T663xt'] 
AB12343 
count value inside if loop AB12343 
After appending ['T663xt', 'AB12343'] 
None 
None 
None 
Traceback (most recent call last): 
    File "./KPHCcommandGenerator.py", line 55, in <module> 
    main() 
    File "./KPHCcommandGenerator.py", line 51, in main 
    F1.ParsingFile (InputFile) 
    File "./KPHCcommandGenerator.py", line 38, in ParsingFile 
    print arrayTemp.group(count) 
IndexError: no such group 

源代碼如下:

#!/usr/bin/python 
import os.path 
import fileinput 
import re 


#print "Hello World!!" 
class checkingInputFile(): 
    array =[] 
    def __init__(self): 
     print "Initializing file class" 

    def checkFile (self, file): 
     self.file = file 
     #print ("I am in checkFile "+ file) 
     try : 
      if os.path.isfile (self.file) : 
       print ("File"+ self.file +" exists \n") 
      else: 
       print "file does not exists" 
     except : 
      print ("File " + self.file + "does not exists") 

    def ParsingFile (self, file): 
     self.file = file 

     print ("I am in switch command function" + self.file) 
     for line in fileinput.input (self.file): 
      #print (line)  
      arrayTemp = re.search(r'^ARRAY_SERIAL #,(\w+),(\w+)?,(\w+)?(\w+)?,(\w+)?,.*', line, re.M|re.I) 
      if arrayTemp : 
       #print ("array lenght " + str(len(arrayTemp.group()))) 
       count = 1 
       while arrayTemp.group() is not None: 
        print arrayTemp.group(count) 
        #print "count value is ", count 
        if arrayTemp.group(count) is not None : 
         print "count value inside if loop ",arrayTemp.group(count) 
         checkingInputFile.array.append(arrayTemp.group(count)) 
         print " After appending ",checkingInputFile.array 
        count = count + 1 
     fileinput.close 

def main(): 
    InputFile = "/home/pradeep/Documents/Scripts/input.csv" 
    F1 = checkingInputFile() 
    F1.checkFile(InputFile) 
    F1.ParsingFile (InputFile) 


if __name__ == "__main__": 
    main() 

正如我們看到的,我想遍歷元組,我得到了形式的正則表達式。我可能沒有任何值。我只是想將非None的值添加到我的全局變量中。

回答

0

首先,刪除或註釋掉該打印語句如果可能的話,因爲它會引發真正的工作代碼之前的錯誤引發錯誤:

print arrayTemp.group(count) 

使用try/except塊捕獲異常,並很好地當處理它組範圍超出:

if arrayTemp.group(count) is not None : 
    try: 
     print "count value inside if loop ",arrayTemp.group(count) 
     checkingInputFile.array.append(arrayTemp.group(count)) 
     print " After appending ",checkingInputFile.array 
    except IndexError: 
     break # break this while loop 
     arrayTemp = None # breaks out of the outer for loop