On Tue, 19 Apr 2016 09:44 am, Sayth Renshaw wrote: > Hi > > Why would it be that my files are not being found in this script?
You are calling the script with: python jqxml.py samples *.xml This does not do what you think it does: under Linux shells, the glob *.xml will be expanded by the shell. Fortunately, in your case, you have no files in the current directory matching the glob *.xml, so it is not expanded and the arguments your script receives are: "python jqxml.py" # not used "samples" # dir "*.xml" # mask You then call: fileResult = filter(lambda x: x.endswith(mask), files) which looks for file names which end with a literal string (asterisk, dot, x, m, l) in that order. You have no files that match that string. At the shell prompt, enter this: touch samples/junk\*.xml and run the script again, and you should see that it now matches one file. Instead, what you should do is: (1) Use the glob module: https://docs.python.org/2/library/glob.html https://docs.python.org/3/library/glob.html https://pymotw.com/2/glob/ https://pymotw.com/3/glob/ (2) When calling the script, avoid the shell expanding wildcards by escaping them or quoting them: python jqxml.py samples "*.xml" -- Steven -- https://mail.python.org/mailman/listinfo/python-list