SORU
15 AĞUSTOS 2012, ÇARŞAMBA


Liste SADECE geçerli dizinde dosyaları

Python, sadece geçerli dizindeki tüm dosyaları listelemek istiyorum. Dosyaları herhangi bir alt veya üst listelenen istemiyorum.

Benzer çözümler orada var, ama benim için çalışmak için görünmüyor. İşte benim kod parçacığını:

import os
for subdir, dirs, files in os.walk('./'):
    for file in files:
      do some stuff
      print file

Hadi var diyelim 2 dosya geçerli dizin içinde, holygrail.py ve Tim. Bir klasör var ve içinde iki dosya - arayalım onları Arthur ve Lancelot - içerir. Komut dosyasını çalıştırdığınızda, bu da nedir:

holygrail.py
Tim
Arthur
Lancelot

Holygrail.py ve Tim ile mutluyum. Ama iki dosya, Arthur ve Lancelot, listelenen istemiyorum.

CEVAP
15 AĞUSTOS 2012, ÇARŞAMBA


Sadece kullanın. os.listdir ve 15 *yerine* 14*.

Örnek:

files = [f for f in os.listdir('.') if os.path.isfile(f)]
for f in files:
    # do something

Ama diğer dizin bunu uygularken dikkatli olmak, gibi

files = [f for f in os.listdir(somedir) if os.path.isfile(f)].

f geçerli dizin tam yolu ama bir akrabası olmadığı için işe yaramaz.

Bu nedenle, başka bir dizin üzerinde filtreleme için os.path.isfile(os.path.join(somedir, f))

(İpucu için teşekkürler Causality)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Djbasilio AuToBaSs

    Djbasilio Au

    20 Aralık 2008
  • SellerDp

    SellerDp

    27 EKİM 2009
  • Tianna Sierra Dance

    Tianna Sierr

    16 EYLÜL 2013