2011-08-29 16 views
0

當一個Python項目得到大,某些代碼段,如實用功能,往往是從不同位置運行:鎖定在一個大的Python項目文件位置

  • __main__
  • 從從一個測試套件

在每種情況下一個測試django的服務器進程

  • 爲Python解釋工作目錄可以是不同的,並假設項目跨越OVE爲r的子目錄樹,以下行並不總是工作:

    with open('some_file.xml','r') as my_xml: 
    

    它不起作用,因爲some_file.xml並不總是在工作目錄。您需要具體說明文件的位置,但是,項目可能部署在各種環境中,因此只需將目錄添加到open聲明中並不是一個好的解決方案。

    什麼是優雅和有效的方式在整個項目中的文件的位置「上的鎖」?

  • +0

    注意配置文件將遭受同樣的厄運的xml文件 - 這是它沒有按」資源t始終存在於同一個工作目錄中... – Jonathan

    +0

    我的問題和[這個問題]之間的區別(http://stackoverflow.com/questions/1967688/accessing-a-file-relatively-in-python-if-you不知道你的起點)是,代碼不能事先假設工作目錄在項目目錄結構中e – Jonathan

    回答

    1

    使用下列變量獲得該項目的目錄可以幫助

     
    __file__ 
    

    How to make a python program path independent?

    +0

    oops !!!在路上編輯 – jknair

    +0

    儘管我不想假設任何有關工作目錄的信息,但是你的建議是可行的,因爲:無論如何,我確實需要PYTHONPATH中的項目根目錄,因此我總是可以訪問項目根目錄下的文件有'__file__'可以使用 - 謝謝! – Jonathan

    +0

    [This answer](http://stackoverflow.com/questions/1967688/accessing-a-file-relatively-in-python-if-you-do-not-know-your-starting-point/1967692#1967692)也有助於如何使用'__file__' – Jonathan

    相關問題