PermissionError Traceback (most recent call last) Cell In[1], line 58 54 print("运行结束") 57 # 保存Excel文件 ---> 58 workbook.save('2009-1.xlsx') File D:\ppy\lib\site-packages\openpyxl\workbook\workbook.py:407, in Workbook.save(self, filename) 405 if self.write_only and not self.worksheets: 406 self.create_sheet() --> 407 save_workbook(self, filename) File D:\ppy\lib\site-packages\openpyxl\writer\excel.py:291, in save_workbook(workbook, filename) 279 def save_workbook(workbook, filename): 280 """Save the given workbook on the filesystem under the name filename. 281 282 :param workbook: the workbook to save (...) 289 290 """ --> 291 archive = ZipFile(filename, 'w', ZIP_DEFLATED, allowZip64=True) 292 writer = ExcelWriter(workbook, archive) 293 writer.save() File D:\ppy\lib\zipfile.py:1249, in ZipFile.__init__(self, file, mode, compression, allowZip64, compresslevel, strict_timestamps) 1247 while True: 1248 try: -> 1249 self.fp = io.open(file, filemode) 1250 except OSError: 1251 if filemode in modeDict: PermissionError: [Errno 13] Permission denied: '2009-1.xlsx'
时间: 2023-12-28 07:04:07 浏览: 145
这个错误是因为你尝试在一个没有写入权限的位置保存Excel文件导致的。你需要将保存的文件路径更改为一个具有写入权限的位置。
例如,可以将文件保存到当前工作目录下(即运行代码的文件夹),或者将文件保存到用户文件夹下的一个子文件夹中,这些位置通常都具有写入权限。
你可以试着将保存Excel文件的代码改为以下形式:
```python
import os
from openpyxl import Workbook
# 创建一个新的Excel文件
workbook = Workbook()
# 获取当前工作目录
current_dir = os.getcwd()
# 保存Excel文件到当前工作目录下
excel_file_path = os.path.join(current_dir, '2009-1.xlsx')
workbook.save(excel_file_path)
print("运行结束")
```
这个代码会将Excel文件保存到当前工作目录下,并且使用`os.getcwd()`函数获取当前工作目录的路径。你也可以将`current_dir`更改为其他具有写入权限的文件夹路径。
相关问题
AttributeError Traceback (most recent call last) Cell In[169], line 14 11 print(df_desc) 13 # 保存Excel文件并关闭写入器对象 ---> 14 writer.save() 15 writer.close() AttributeError: 'OpenpyxlWriter' object has no attribute 'save'
这个错误可能是因为 `OpenpyxlWriter` 对象没有 `save` 属性。在新版的 `pandas` 中,`ExcelWriter` 对象默认使用 `openpyxl` 引擎来写入 Excel 文件。因此,您可以尝试使用 `openpyxl` 库中的 `Workbook` 对象来保存 Excel 文件,代码如下:
```python
import pandas as pd
from openpyxl import Workbook
# 创建一个写入器对象,用于将数据帧写入Excel文件
writer = pd.ExcelWriter('描述统计信息.xlsx', engine='openpyxl')
# 循环遍历每个数据帧,将每个数据帧的描述统计信息写入Excel文件
for i, df in enumerate(dfs):
df_desc = df.describe()
sheet_name = '描述统计信息{}'.format(i+1)
df_desc.to_excel(writer, sheet_name=sheet_name)
print(df_desc)
# 保存Excel文件并关闭写入器对象
writer.book = Workbook()
writer.save()
writer.close()
```
在上述代码中,我们在创建 `ExcelWriter` 对象时指定了 `engine='openpyxl'`,并在保存 Excel 文件时使用了 `Workbook` 对象来保存。
AttributeError Traceback (most recent call last) Cell In[165], line 15 13 print(df_desc) 14 # 保存Excel文件并关闭写入器对象 ---> 15 writer.save() 16 writer.close() AttributeError: 'OpenpyxlWriter' object has no attribute 'save'
这个错误可能是因为 `OpenpyxlWriter` 对象没有 `save` 属性。在新版的 `pandas` 中,`ExcelWriter` 对象默认使用 `openpyxl` 引擎来写入 Excel 文件。因此,您可以尝试使用 `openpyxl` 库中的 `Workbook` 对象来保存 Excel 文件,代码如下:
```python
import pandas as pd
from openpyxl import Workbook
# 创建一个写入器对象,用于将数据帧写入Excel文件
writer = pd.ExcelWriter('描述统计信息.xlsx', engine='openpyxl')
# 循环遍历每个数据帧,将每个数据帧的描述统计信息写入Excel文件
for i, df in enumerate(dfs):
df_desc = df.describe()
sheet_name = '描述统计信息{}'.format(i+1)
df_desc.to_excel(writer, sheet_name=sheet_name)
print(df_desc)
# 保存Excel文件并关闭写入器对象
writer.book = Workbook()
writer.save()
writer.close()
```
在上述代码中,我们在创建 `ExcelWriter` 对象时指定了 `engine='openpyxl'`,并在保存 Excel 文件时使用了 `Workbook` 对象来保存。
阅读全文