file find skips first letter
Alexander Kapps
alex.kapps at web.de
Tue Feb 15 13:55:42 EST 2011
On 15.02.2011 19:32, Wanderer wrote:
> I'm using code
>
> def getFiles(self, fileBase):
> """return a list of the filenames in a director containing a
> base word
> """
>
> allFiles = os.listdir(self.resultDir)
> baseFiles = []
> for f in allFiles:
> if f.find(fileBase)> 0:
> baseFiles.append(f)
>
> return baseFiles
>
> but the code can't find files with fileBase in it if the fileBase
> starts the filename.
>
> if the filenames are rnoise##.tif and fileBase is "rnoise" the file
> won't be found. If fileBase is "noise" the files will be found.
str.find() returns the index to the left-most occurrence or -1 if
the substring is not found. So, if the file name starts with
fileBase, find() return 0 which you filter out with your test
f.find(fileBase)> 0.
Either use f.find(fileBase) >= 0 or better:
baseFiles = []
for f in allFiles:
if fileBase in f:
baseFiles.append(f)
HTH
More information about the Python-list
mailing list