[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