Python göreli yolları
Geçerli dizini için kod tabanımızda şablon dosyaları bir kaç kopya olacak bu iş için basit bir yardımcı komut dosyası inşa ediyorum. Ancak, şablonları saklandığı dizin için mutlak yolu yok. Komut dosyası için göreli bir yol var ama senaryoyu okuduğumda bir yol geçerli çalışma dizini ile göreli olarak değerlendirir. Bir şekilde bu göreli url komut dosyasının konumunu belirtmek için yerine var mı?
CEVAP
Komut dosyası var o dosyanın içinde böyle bir şey yapmak istiyorum:
import os
dir = os.path.dirname(__file__)
filename = os.path.join(dir, '/relative/path/to/file/you/want')
Bu sizin aradığınız dosyanın tam yolunu verecektir. Eğer setuptools kullanıyorsanız, muhtemelen package resources API onun yerine kullanmanız gerektiğini unutmayın.
GÜNCELLEME: Örnek kod yapıştırmak için ben de yorum yapmak için buraya gelmiştim. :-)
__file__
her zaman kullanılabilir (dosyayı doğrudan çalıştırmak yerine alırken örneğin) değil, yanılıyor muyum?
Dosyayı doğrudan çalışan söz konusu olunca __main__
script ne demek olduğunu varsayıyorum. Eğer öyleyse, bu benim sistemi (OS X python 2.5.1 10.5.7) durum gibi görünmüyor:
#foo.py
import os
print os.getcwd()
print __file__
#in the interactive interpreter
>>> import foo
/Users/jason
foo.py
#and finally, at the shell:
~ % python foo.py
/Users/jason
foo.py
Ancak, C uzantıları __file__
Bazı tuhaflıklar olduğunu biliyorum. Örneğin, benim Mac üzerinde bunu yapabilirim:
>>> import collections #note that collections is a C extension in Python 2.5
>>> collections.__file__
'/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-
dynload/collections.so'
Ancak, bu benim Windows bir istisna makine yükseltir.
Nasıl css URL göreli/mutlak yolları ku...
Herkes'göreli ithalat s python aç...
göreli ithalat için python ambalaj...
Python göreli milyarıncı kez ithalat...
Denklik destek için şık yolları ("...