私はこの答えを読みました:
Pandas / xlsxwriter writer.close() が Excel ファイルを完全に閉じない
しかし、この解決策はExcelWriterを使用しないことであったため、この解決策は私にはうまくいきません。彼らはまた、私がopenpyxlを使用しているエンジンとしてxlsxwriterを使用しています(それが違いを生む場合)。
pandas ExcelWriter オブジェクトを使用して一連のシートを xlsx ファイルに書き込むオブジェクトがあります。
import pandas as pd
with pd.ExcelWriter("file.xlsx",mode='w') as stream:
for sheet, dataframe in dataframe_dictionary.items():
dataframe.to_excel(stream, sheet_name=sheet)
other_dataframe.to_excel(stream, sheet_name='other')
問題は、コンテキスト マネージャー内で例外が発生した場合、pandas がファイルを適切に閉じないことがあることです。したがって、それを削除しようとすると(Pythonスクリプトの実行が終了した後、Pythonスクリプトの外で)、次のようなエラーメッセージが表示されます
"The action can't be completed because the file is open in Python"
これはパンダのバグですか、それとも何か間違っていますか? ブロックを除いて、コンテキストマネージャーをtry内に配置する必要がありますか? コンテキストマネージャーの要点は、クリーンアップを処理することだと思いましたか? ファイルがまだ開いているかどうかを確認し、開いている場合は閉じる方法はありますか? Jupyter Notebook でスクリプトを実行しています。