SORU
2 ŞUBAT 2010, Salı


Bir Topak() dosyalar Python yinelemeli olarak bulmak için?

Sahip olduğum tek şey bu:

Glob(os.path.join('src','*.c'))

ama src klasörleri aramak istiyorum. Böyle bir şey işe yarar:

Glob(os.path.join('src','*.c'))
Glob(os.path.join('src','*','*.c'))
Glob(os.path.join('src','*','*','*.c'))
Glob(os.path.join('src','*','*','*','*.c'))

Ama bu tabii ki sınırlı ve aksak.

CEVAP
2 ŞUBAT 2010, Salı


Bir dizin yürüme mesafesinde fnmatch.filter basit bir ifade karşı maç için yinelemeli olarak 10* *kullanın:

import fnmatch
import os

matches = []
for root, dirnames, filenames in os.walk('src'):
  for filename in fnmatch.filter(filenames, '*.c'):
    matches.append(os.path.join(root, filename))

Python sürüm 2.2, fnmatch.filter yerine her dosya karşı glob.glob kullanım yaş ve üstü için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 2ndfloor91

    2ndfloor91

    17 Kasım 2007
  • alexis gillis

    alexis gilli

    23 HAZİRAN 2011
  • failblog

    failblog

    17 HAZİRAN 2008