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

  • Baby Big Mouth

    Baby Big Mou

    5 Mart 2013
  • Damian Winter

    Damian Winte

    27 ŞUBAT 2007
  • Justin Davis

    Justin Davis

    14 Ocak 2008