python with "python normalizer/setup.py test"でテストケースを実行すると、以下の例外が発生します
ResourceWarning: unclosed file <_io.TextIOWrapper name='/Users/workspace/aiworkspace/skillset-normalization-engine/normalizer/lib/resources/skills.taxonomy' mode='r' encoding='utf-8'>
コードでは、次のような大きなファイルを読み取っています。
def read_data_from_file(input_file):
current_dir = os.path.realpath(
os.path.join(os.getcwd(), os.path.dirname(__file__)))
file_full_path = current_dir+input_file
data = open(file_full_path,encoding="utf-8")
return data
何が欠けていますか?
から Pythonクローズされていないリソース:ファイルを削除しても安全ですか?
このResourceWarningは、ファイルを開いて使用したが、ファイルを閉じるのを忘れたことを意味します。 Pythonは、ファイルオブジェクトがデッドであることに気付いたときに閉じますが、これは不明な時間が経過した後にのみ発生します。
def read_data_from_file(input_file):
current_dir = os.path.realpath(
os.path.join(os.getcwd(), os.path.dirname(__file__)))
file_full_path = current_dir+input_file
with open(file_full_path, 'r') as f:
data = f.read()
return data