1

私はこの答えを読みました:

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 でスクリプトを実行しています。

4

1 に答える 1