ValueError:closures文件的I / O操作,甚至在给第二个arg打开()

我想运行这个代码:

import xlrd import os.path import xlsxwriter with open("arrays.xlsx", "a") as my_file: workbook = xlsxwriter.Workbook(my_file) worksheet = workbook.add_worksheet() array = [1, 2, 3, 4, 5] row = 0 for col, data in enumerate(array): worksheet.write_column(row, 0, array) workbook.close() 

但是当我运行它,我得到以下错误:

 Traceback (most recent call last): File "C:\Users\hp\Anaconda3\lib\zipfile.py", line 1649, in __del__ self.close() File "C:\Users\hp\Anaconda3\lib\zipfile.py", line 1666, in close self.fp.seek(self.start_dir) ValueError: I/O operation on closed file. 

withwith你并不需要closures文件。

with语句用于使用上下文pipe理器定义的方法来封装块的执行(请参见使用语句上下文pipe理器一节)。 这允许共同的try...except...finally使用模式被封装以方便重用。

这里隐藏的隐式finally块会为你closures文件。 只要删除你明确的closures,你会没事的。