Pythonはカバンの中にあるデータファイルを読みだします。


問題
あなたのカバンにはコードが含まれています。データファイルを読み込む必要があります。できるだけ便利な方法でこのことをしてください。
ソリューション
あなたのカバンの中の書類が次のように構成されていると仮定します。
mypackage/
    __init_.py
    somedata.dat
    spam.py
spam.pyファイルはsomedata.datファイルの内容を読み込む必要があると仮定します。下記のコードで完成できます。

# spam.py
import pkgutil
data = pkgutil.get_data(__package__, 'somedata.dat')
これにより生成される変数は、そのファイルの元の内容を含むバイト文字列である。
討論する
データファイルを読み込むには、Open()など、内蔵I/O機能を使ったコードを書く傾向があります。しかし、この方法にも問題があります。
まず、一つのカバンは解凍器の現在の作業ディレクトリに対してほとんど制御権がありません。したがって、プログラム時にはどのI/O操作も絶対ファイル名を使用しなければなりません。モジュールごとに完全なパスが含まれているためfile_変数は、その経路を明らかにすることは不可能ではないが、非常に乱れている。
第二に、パッケージは通常.zipまたは.eggファイルとしてインストールされていますが、これらのファイルはファイルシステム上の普通のディレクトリのように保存されていません。したがって、OPEN()でデータファイルを含むアーカイブファイルを操作しようとしますが、まったく動作しません。
pkguttil.get_data()関数はデータファイルを読み込むための高級ツールです。カバンはどうやってインストールされ、どこにインストールされますか?仕事をして、ファイルの内容をバイト文字列で返します。
ゲットするdata()の最初のパラメータはパッケージ名を含む文字列です。バッグ名を直接使うこともできます。特殊な変数を使うこともできます。package。二つ目のパラメータはパッケージファイルの相対的な名前です。必要であれば、標準的なUnix命名仕様を使用して、異なるディレクトリに行くことができます。最後のディレクトリがまだカバンの中にある限り。
以上はPythonでカバンの中にあるデータファイルの詳細を読みました。Pythonについてデータファイルを読み込む資料は他の関連記事に注目してください。