Nunez-IglesiasらがElegant SciPyを読み始めました。アル、およびブック(.txt
ファイル)の最初のデータセットを開くとき、著者はpd.read_csvでCSVファイルを開く - コンテキストマネージャの目的は何ですか?
filename = 'data/counts.txt'
with open(filename, 'rt') as f:
data_table = pd.read_csv(f, index_col=0) # Parse file with pandas
を使用しています。しかし、私は(Andy Hayden's answer hereを参照)、それはファイルディスクリプタを与え開いていることを考えると、read_csv
は、ファイルを閉じるだろうと思いました。
あなたはread_csv
にファイルハンドルを渡したり、ファイル名を渡すことができますので、ここでは、コンテキストマネージャにどのような目的があり、あるいは我々は同じように安全に
filename = 'data/counts.txt'
data_table = pd.read_csv(filename, index_col=0)
確かに、作者は単に良い習慣を植えようとしているに過ぎないかもしれませんが、ここでは必要ないでしょう。ありがとう、私はちょうど私が何かを逃していないことを確認したかった。 –
そうだと思います。 'read_csv'にファイルハンドルを渡す正当な理由があるのかどうかわかりません。しかし、おそらくファイルは圧縮されています(パンダには未知のフォーマットを使用しています)。そしてあなた自身が解凍してファイルハンドルを 'read_csv'に渡す以外に選択肢はありません。その場合は、ファイルハンドルがあなたの責任であることを知っておくとよいでしょう。 – MSeifert