Re: os.path.isfile and wildcard for directory name
Hello, 2010/12/30 smain...@free.fr: How can i do the same thing (wildcard in a directory name) in python please ? You can get the contents of a directory with os.listdir and filter with fnmatch.fnmatch more or less as in the example from the documentation: - import fnmatch import os for file in os.listdir('.'): if fnmatch.fnmatch(file, '*.txt'): print file - Regards, Javier -- http://mail.python.org/mailman/listinfo/python-list
Re: os.path.isfile and wildcard for directory name
On 30Dec2010 09:36, smain...@free.fr smain...@free.fr wrote: | I want to test if a file exists but my path contain a directory name that | differs from a server to another. | In shell i would have done something like that : | #!/bin/bash | mypath=/dire*/directory02/ | myfile=filename | myfile=toto | if [ -f $mypath/$myfile ] [...] Check out the glob module: http://docs.python.org/library/glob.html#module-glob Use it to do the glob, then os.path.isfile with a path constructed from the result: http://docs.python.org/library/os.path.html#os.path.isfile Cheers, -- Cameron Simpson c...@zip.com.au DoD#743 http://www.cskk.ezoshosting.com/cs/ Any company large enough to have a research lab is large enough not to listen to it. - Alan Kay -- http://mail.python.org/mailman/listinfo/python-list
Re: os.path.isfile and wildcard for directory name
smain...@free.fr wrote: I'm just beginning to learn python language and i'm trying to do something and i can't figure it out. I want to test if a file exists but my path contain a directory name that differs from a server to another. In shell i would have done something like that : #!/bin/bash mypath=/dire*/directory02/ myfile=filename myfile=toto if [ -f $mypath/$myfile ] then echo File $file exists fi How can i do the same thing (wildcard in a directory name) in python please ? Given $ mkdir yadda{1..10} $ touch yadda{5,7}/alpha $ mkdir yadda{2,4}/alpha You can get a list of candidates with import glob candidates = glob.glob(yadda*/alpha) candidates ['yadda5/alpha', 'yadda2/alpha', 'yadda4/alpha', 'yadda7/alpha'] and then use isfile() to find the actual files: import os [f for f in candidates if os.path.isfile(f)] ['yadda5/alpha', 'yadda7/alpha'] Peter -- http://mail.python.org/mailman/listinfo/python-list
Re: os.path.isfile and wildcard for directory name
Hi Cameron, Ok, i'll try that :) Thanks Smaine Selon Cameron Simpson c...@zip.com.au: On 30Dec2010 09:36, smain...@free.fr smain...@free.fr wrote: | I want to test if a file exists but my path contain a directory name that | differs from a server to another. | In shell i would have done something like that : | #!/bin/bash | mypath=/dire*/directory02/ | myfile=filename | myfile=toto | if [ -f $mypath/$myfile ] [...] Check out the glob module: http://docs.python.org/library/glob.html#module-glob Use it to do the glob, then os.path.isfile with a path constructed from the result: http://docs.python.org/library/os.path.html#os.path.isfile Cheers, -- Cameron Simpson c...@zip.com.au DoD#743 http://www.cskk.ezoshosting.com/cs/ Any company large enough to have a research lab is large enough not to listen to it. - Alan Kay -- http://mail.python.org/mailman/listinfo/python-list