私が辞書形式で各ファイルの行を読み取ることができる場合も、そのファイルを処理するために非常に容易になります、ファイルのほぼ100K行の大きなCSVファイルを読み込む必要があります。csv.DictReaderはファイルをメモリに保存しますか?
少し研究した後、私はcsvモジュールからPythonの組み込み関数csv.DictReaderを発見しました。
しかし、マニュアルにメモリにファイル全体を保存するかどうか上記のは明らかではありません。
しかし、ことを述べている:フィールド名パラメータがその要素の順序で入力データのフィールドに関連付けられたシーケンスである
。
しかし、シーケンスがメモリに格納されているかどうかはわかりません。
は、そこで問題は、それがメモリにファイル全体を保存するんですか?
その場合は、ファイルからgeneraror式として単一の行を読み、辞書のように行を取得するために読んで、他のオプションがあります。ここで
が私のコードです:限りイムとして認識して
def file_to_dictionary(self, file_path):
"""Read CSV rows as a dictionary """
file_data_obj ={}
try:
self.log("Reading file: [{}]".format(file_path))
if os.path.exists(file_path):
file_data_obj = csv.DictReader(open(file_path, 'rU'))
else:
self.log("File does not exist: {}".format(file_path))
except Exception as e:
self.log("Failed to read file.", e, True)
return file_data_obj