Python’da __file__ değişkeni ne anlama geliyor/ ne yapıyor?

Python’daki bir dosyadan bir modül yüklendiğinde, __file__ bu dosyanın yoluna ayarlanır.

Python’daki bir dosyadan bir modül yüklendiğinde, __file__ bu dosyanın yoluna ayarlanır. Daha sonra, dosyanın bulunduğu dizini bulmak için bunu diğer işlevlerle birlikte kullanabilirsiniz.

Örneklerimize teker teker bakalım:

A = os.path.join(os.path.dirname(__file__), '..')
# A, programın bulunduğu dizinin üst dizinidir.

B = os.path.dirname(os.path.realpath(__file__))
# B, programın bulunduğu kurallı dizindir.

C = os.path.abspath(os.path.dirname(__file__))
# C, programın bulunduğu dizinin mutlak yoludur.

Bu örneklerden döndürülen çeşitli değerlere aşağıdaki gibi bakabiliriz.

import os
print(__file__)
print(os.path.join(os.path.dirname(__file__), '..'))
print(os.path.dirname(os.path.realpath(__file__)))
print(os.path.abspath(os.path.dirname(__file__)))

Bunların nasıl farklı olduğunu görmek için bu kodu farklı konumlardan (../text.py, ~/python/text.py vb.) çalıştırın.


Kafa karışıklığına yol açacak bir değişiklilk hakkında da not ekleyelim. Python 3.4 itibariyle __file__ davranışında küçük bir değişiklik oldu:

  • Bir modül doğrudan yürütülürse, __file__ kullanıldığı modülün göreli yoluna ayarlanır.
  • Aksi takdirde dosyanın mutlak yoluna ayarlanır.

Modül öznitelikleri (ve ilgili değerler) artık, bir komut dosyasının doğrudan göreli bir yol kullanılarak yürütülmesi dışında, varsayılan olarak her zaman mutlak yollar içermelidir. (Brett Cannon’ın 18416 sayısında.)

Örnek:

X modül doğrudan ve modül y dolaylı olarak çağrılır:

# x.py:
from pathlib import Path
import y
print(__file__)
print(Path(__file__))
print(Path(__file__).resolve())

# y.py:
from pathlib import Path
print(__file__)
print(Path(__file__))

Çalıştırma çıktısı: python3 x.py

/home/aderchox/mytest/y.py                                                                                                                       
/home/aderchox/mytest/y.py                                                                                                                       
x.py                                                                                                                                             
x.py                                                                                                                                             
/home/aderchox/mytest/x.py
Bu yazı topluluk tarafından oluşturuldu. Lisans bilgisine bakabilirsiniz. Yanlış veya eksik bilgileri düzenlemek için github üzerinden katkıda bulunabilirsiniz.

Kategoriler: Yazı, Python

Okumaya devam et!

Python’da listedeki öğelerin sayısını nasıl alabilirim?

Listenin boyutunu bulmak için yerleşik len() fonksiyonunu kullanın: Ve aşağıdaki kod çıktı olarak 3 döndürür: Açıklama Python’daki her şey listeler de dahil olmak üzere nesnedir.

Python “in” ifadesi

Pythton’da “in” ifadesi birden fazla amaçla kullanılabilir.

Fonksiyonlar – İşlevler

İşlevler, bir dizi belirli eylemi gerçekleştirmek için organize, yeniden kullanılabilir ve modüler kod parçaları sağlar.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak.

koddla
Tema Mundana by WowThemes.net.