開始フォルダのすべてのディレクトリとサブディレクトリを再帰的に処理するスクリプトを作成していますが、メモリエラーが発生しています(エラーはMemoryError
です)。私の推測はおそらく私のdata_dicts
リストが大きすぎますが、わかりません。アドバイスをいただければ幸いです。Python - ファイル情報を収集すると再帰的にメモリエラーが発生する
import os
# example data dictionary
data_dict = {
'filename': 'data.csv',
'folder': 'R:/',
'size': 300000
}
def get_file_sizes_folder(data_dicts, starting_folder):
# Given a list of file information dictionaries and a folder, iterate over the files
# in the folder to get their information and append it to the list.
# Also recurse through subdirectories
for entry in os.scandir(starting_folder):
if not entry.name.startswith('.'):
if entry.is_file():
size = entry.stat().st_size
filename = entry.name
folder = os.path.dirname(entry.path)
temp_dict = {'filename': filename, 'size': size, 'folder': folder}
data_dicts.append(temp_dict.copy())
else:
print(entry.path)
data_dicts.extend(get_file_sizes_folder(data_dicts, entry.path))
return data_dicts
d = get_file_sizes_folder([], 'R:/')
:
os.walk
例を使用しますか? – MariusSiuram