SORU
15 EYLÜL 2010, ÇARŞAMBA


Nasıl düzgün bir Python komut dosyası geçerli dizini belirlemek için?

En iyi yolu, mevcut script dizini belirlemek için python içinde ne olduğunu görmek istiyorum?

Arama python kod birçok yönden iki, çok iyi bir çözüm bulmak olduğunu keşfettim.

Burada bazı sorunlar:

  • __file__ Eğer scriptexec, execfile gerçekleştirildiğinde tanımlı değil
  • __module__ modüller tek olarak tanımlanır

Kullanım durumları:

  • ./myfile.py
  • python myfile.py
  • ./somedir/myfile.py
  • python somedir/myfile.py
  • execfile('myfile.py') (başka bir Senaryo, başka bir dizinde yer alabilir ve başka bir geçerli dizin var.

Mükemmel bir çözüm, çünkü bazı durumlarda yok biliyorum ama çoğu çözüldü en iyi yaklaşım arıyorum.

En çok kullanılan yaklaşım os.path.dirname(os.path.abspath(__file__)) ama bu gerçekten varsa exec() ile başka bir komut dosyasını çalıştırmak için işe yaramıyor.

Uyarı

Geçerli dizini kullanan herhangi bir çözüm başarısız olur, Bu komut dosyası denir bağlı olarak farklı olabilir veya çalışan komut dosyası içinde değiştirilebilir.

CEVAP
15 EYLÜL 2010, ÇARŞAMBA


os.path.dirname(os.path.abspath(__file__))

aslında alacaksın en iyisi.

Sıradışıexec/execfile; normal yük komut modülü altyapısını kullanarak bir komut dosyası yürütme. Eğer bu yöntemler, tavsiye ederim globals __file__ ayarı kullanmanız gerekiyorsa dosya adı okuyabilmesi senaryoya geçirir.

Not olarak, basılı belge tamamen farklı bir yerde olabilir. execed kodu dosya adını almak için başka bir yol var:

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • krotoflik

    krotoflik

    26 ŞUBAT 2011
  • Submissions101

    Submissions1

    23 ŞUBAT 2007
  • Ty Moss

    Ty Moss

    20 Kasım 2007