Re: os.path.isfile and wildcard for directory name

2010-12-30 Thread Javier Collado
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

2010-12-30 Thread Cameron Simpson
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

2010-12-30 Thread Peter Otten
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

2010-12-30 Thread smainklh
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