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

  • Curso Online Gratuito

    Curso Online

    4 Aralık 2011
  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • happyjpy

    happyjpy

    22 AĞUSTOS 2009