[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

Re: File existence check with partial filename

Alf P. Steinbach

3/15/2010 4:25:00 AM

* Sang-Ho Yun:
> I learned that I can check the existence of a file using
> os.path.isfile("filename").
>
> What if I need to check if there is a file that contains "HV" in the
> filename? What should I do?

<code>
from __future__ import print_function
import os

for filename in os.listdir( "." ):
if "HV" in filename.upper():
print( filename )
</code>


Cheers & hth.,

- Alf
3 Answers

Gary Herron

3/15/2010 4:29:00 AM

0

Alf P. Steinbach wrote:
> * Sang-Ho Yun:
>> I learned that I can check the existence of a file using
>> os.path.isfile("filename").
>>
>> What if I need to check if there is a file that contains "HV" in the
>> filename? What should I do?
>
> <code>
> from __future__ import print_function
> import os
>
> for filename in os.listdir( "." ):
> if "HV" in filename.upper():
> print( filename )
> </code>
>
>
> Cheers & hth.,
>
> - Alf

Or learn the glob module. It allows you to ask for a list of files
matching a pattern that can include wildcard characters -- probably
"*HV*" for your case.

Gary Herron

MRAB

3/15/2010 3:45:00 PM

0

Lan Qing wrote:
> Or use the regular module:
>
> import re
> import os
>
> for filename in os.listdir('.'):
> if re.match("*HV*", filename):
> # do something with the file
>
The regular expression should be ".*HV.*", although:

re.search("HV", filename)

would be better and:

"HV" in filename.upper()

would be even better, as Alf posted.

> On Mon, Mar 15, 2010 at 12:24 PM, Alf P. Steinbach <alfps@start.no
> <mailto:alfps@start.no>> wrote:
>
> * Sang-Ho Yun:
>
> I learned that I can check the existence of a file using
> os.path.isfile("filename").
>
> What if I need to check if there is a file that contains "HV" in the
> filename? What should I do?
>
>
> <code>
> from __future__ import print_function
> import os
>
> for filename in os.listdir( "." ):
> if "HV" in filename.upper():
> print( filename )
> </code>
>
>
> Cheers & hth.,
>
> - Alf
>
> --
> http://mail.python.org/mailman/listinfo/p...
>
>

Steven Howe

3/15/2010 5:20:00 PM

0

What wrong with glob?
-----------------------
Help on module glob:

NAME
glob - Filename globbing utility.

FILE
/usr/lib64/python2.6/glob.py

FUNCTIONS
glob(pathname)
Return a list of paths matching a pathname pattern.

The pattern may contain simple shell-style wildcards a la fnmatch.

iglob(pathname)
Return an iterator which yields the paths matching a pathname
pattern.

The pattern may contain simple shell-style wildcards a la fnmatch.

DATA
__all__ = ['glob', 'iglob']

-------------------
solution:

import glob

for afile in glob.iglob( "/home/buddy/*.HV" ):
print afile


sph


On 03/15/2010 08:44 AM, MRAB wrote:
> Lan Qing wrote:
>> Or use the regular module:
>>
>> import re
>> import os
>>
>> for filename in os.listdir('.'):
>> if re.match("*HV*", filename):
>> # do something with the file
>>
> The regular expression should be ".*HV.*", although:
>
> re.search("HV", filename)
>
> would be better and:
>
> "HV" in filename.upper()
>
> would be even better, as Alf posted.
>
>> On Mon, Mar 15, 2010 at 12:24 PM, Alf P. Steinbach <alfps@start.no
>> <mailto:alfps@start.no>> wrote:
>>
>> * Sang-Ho Yun:
>>
>> I learned that I can check the existence of a file using
>> os.path.isfile("filename").
>>
>> What if I need to check if there is a file that contains "HV"
>> in the
>> filename? What should I do?
>>
>>
>> <code>
>> from __future__ import print_function
>> import os
>>
>> for filename in os.listdir( "." ):
>> if "HV" in filename.upper():
>> print( filename )
>> </code>
>>
>>
>> Cheers & hth.,
>>
>> - Alf
>>
>> -- http://mail.python.org/mailman/listinfo/p...
>>
>>
>