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

  • glowpinkstah

    glowpinkstah

    16 Mayıs 2006
  • Maya Learning Channel

    Maya Learnin

    23 HAZİRAN 2010
  • ODN

    ODN

    26 Kasım 2006