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

  • Amir Parmar

    Amir Parmar

    25 Kasım 2010
  • TopDJMag TV

    TopDJMag TV

    29 Temmuz 2010
  • Xcode programming tutorials

    Xcode progra

    17 EYLÜL 2006