[Tutor] IndexError: list index out of range

Mysore Ventaka Rama Kumar Kumar.Mysore at cargolux.com
Tue Dec 27 10:22:21 EST 2016


Please review and comment/correct my error!
Many thanks in advance.



# Required module
import os

# Function for getting files from a folder
def fetchFiles(pathToFolder, flag, keyWord):
	'''	fetchFiles() requires three arguments: pathToFolder, flag and 
 keyWord flag must be 'STARTS_WITH' or 'ENDS_WITH' keyWord is a string to 
  search the file's name  Be careful, the keyWord is case sensitive and must
  be exact.  Example: fetchFiles('/Documents/Photos/','ENDS_WITH','.jpg')
returns: _pathToFiles and _fileNames '''
	
	_pathToFiles = []
	_fileNames = []

	for dirPath, dirNames, fileNames in os.walk(pathToFolder):
		if flag == 'ENDS_WITH':
			selectedPath = [os.path.join(dirPath,item) for item in fileNames if item.endswith(keyWord)]
			_pathToFiles.extend(selectedPath)
			
			selectedFile = [item for item in fileNames if item.endswith(keyWord)]
			_fileNames.extend(selectedFile)
			
		elif flag == 'STARTS_WITH':
			selectedPath = [os.path.join(dirPath,item) for item in fileNames if item.startswith(keyWord)]
			_pathToFiles.extend(selectedPath)
			
			selectedFile = [item for item in fileNames if item.startswith(keyWord)]
			_fileNames.extend(selectedFile) 
			    
		else:
			print fetchFiles.__doc__
			break
						
		# Try to remove empty entries if none of the required files are in directory
		try:
			_pathToFiles.remove('')
			_imageFiles.remove('')
		except ValueError:
			pass
			
		# Warn if nothing was found in the given path
		#if selectedFile == []: 
			#print 'No files with given parameters were found in:\n', dirPath, '\n'
                
                #print len(_fileNames), 'files were found is searched folder(s)' 
      		
        #return _pathToFiles, _fileNames
        #print _pathToFiles, _fileNames
        #print _pathToFiles [1]
        print _pathToFiles
        s = ' '.join(_pathToFiles [1]) #convert tuple element 1 to string
        #print len (s)
        s_no_white = s.replace(" ", "") #remove white spaces
        #print s_no_white[4:7] #extract rgeistration
        s1 = s_no_white[4:7] #extract rgeistration
        print 'str1 is:', str1
        str2 = 'FLDAT'
        print 'str2 is: ', str2
        str3 = str1.__add__(str2)
        print 'str 3 is: ',str3
        str4 = 'H//'
        print 'str4 is: ', str4
        str5 = str4.__add__(str3)
        print 'str5 is: ', str5        
        
        
        print _fileNames
        print 'Number of files found: ', len(_fileNames)
        
fetchFiles('str5','ENDS_WITH','.FLD')

####code end##

###Output##

  File "D:/university_2/my_code_2/good_2016_12_01/get_registration.py", line 52, in fetchFiles
    s = ' '.join(_pathToFiles [1]) #convert tuple element 1 to string

IndexError: list index out of range

##output end##




More information about the Tutor mailing list