On Sep 2, 10:10 pm, Helvin <helvin...@gmail.com> wrote: > Hi, > > I have come across this very strange behaviour. Check this code: > > if file_str.find('Geometry'): > #if file_str.endswith('Data_Input_Geometry.txt'): > print 'I found geometry' > elif file_str.find('Material'): > print 'I found material' > The amazing thing is when file_str = 'C:\Qt\SimLCM\Default > \Data_Input_Material.txt', > the first if statement if fulfilled, that seemingly says that in this > file_str, python actually finds the word 'Geometry'. > I know this, because the line: 'I found geometry' is printed. However, > if instead of using file_str.find(), I use file_str.endswith(), it > does not exhibit this strange behaviour. > > Obviously, I want the elif line to be true, instead of the first if > statement. > > Does anyone know why this is happening? > Help much appreciated! > > Very puzzled, > Helvin
string.find() returns the index at which the given word is found within the string. If the string is not found it returns -1. So, no matter what you do, string.find() will evaluate to "True" You could use it like this: if file_str.find("Geometry") != -1: but you probably want to use: if "Geometry" in file_str: ~Sean -- http://mail.python.org/mailman/listinfo/python-list