2016-04-27 8 views
1

私の質問の前に私の状況を少し説明します。ファイルをPythonモジュールのパスに関連して開きます

私はfooというモジュールを作成しました。ファイルシステム内のFOOの位置は

/runtime/foo 

とsys.path.appendを(使用してFOOをインポートスクリプト「test.py」)に配置されている。次のように

/runtime/bar/test.py 

フーズ構造であります

foo 
    mtr.txt 
    __init__.py 
    datasources.py 

datasources.py内のクラスでmtr.txtファイルを開くことができます。しかし、私はデータソース内にパスを与えることを解明せずにこれを行うことはできません。この場合、私はそれをこのパスを与える行う場合

/runtime/foo/mtr.txt 

は私のコードが動作するだろうが、これはなんとかなるべきものであるが、私は答えを見つけることができません。

datasources.pyのクラス内で次のコマンドを試してみました。

open("mtr.txt") 
open("./mtr.txt") 

とos.path.dirname()

datasources.py内にそのフルパスを与えずにファイル「mtr.txt」をオープンする方法はありますを使用して、いくつか他のもの?

答えて

1

使用pkg_resources

おかげ

import pkg_resources 
data = pkg_resources.resource_string(__name__, "mtr.txt") 

このパッケージで提供される多くの方法があり、Resource Manager APIのためのドキュメントを確認してください。

+0

fyi、リンクが無効です。 –

関連する問題