开发者

Python: os.listdir alternative/certain extensions

Is it possible to see files with certain extensions with the os.listdir command? I want it to work so it may show only files or folders with .f at the end. I checked the d开发者_如何转开发ocumentation, and found nothing, so don't ask.


glob is good at this:

import glob
for f in glob.glob("*.f"):
    print(f)


Don't ask what?

[s for s in os.listdir() if s.endswith('.f')]

If you want to check a list of extensions, you could make the obvious generalization,

[s for s in os.listdir() if s.endswith('.f') or s.endswith('.c') or s.endswith('.z')]

or this other way is a little shorter to write:

[s for s in os.listdir() if s.rpartition('.')[2] in ('f','c','z')]


There is another possibility not mentioned so far:

import fnmatch
import os

for file in os.listdir('.'):
    if fnmatch.fnmatch(file, '*.f'):
        print file

Actually this is how the glob module is implemented, so in this case glob is simpler and better, but the fnmatch module can be handy in other situations, e.g. when doing a tree traversal using os.walk.


Try this:

from os import listdir

extension = '.wantedExtension'

mypath = r'my\path'

filesWithExtension = [ f for f in listdir(mypath) if f[(len(f) - len(extension)):len(f)].find(extension)>=0 ]


[s for s in os.listdir() if os.path.splitext(s) == 'f']
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜