You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS Monterey下openpyxl打开Excel遇PermissionError求助

问题描述
  • 环境:MacOS Monterey、Python 3.8、IDLE、openpyxl
  • 需求:打开Excel文件,从单元格生成项目列表
  • 测试代码:
import openpyxl
wb = openpyxl.load_workbook('fileName.xlsx')
  • 报错信息:
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    wb = openpyxl.load_workbook('fileName.xlsx')
  File "/Users/myname/Library/Python/3.8/lib/python/site-packages/openpyxl/reader/excel.py", line 310, in load_workbook
    reader = ExcelReader(filename, read_only, keep_vba,
  File "/Users/myname/Library/Python/3.8/lib/python/site-packages/openpyxl/reader/excel.py", line 126, in __init__
    self.archive = _validate_archive(fn)
  File "/Users/myname/Library/Python/3.8/lib/python/site-packages/openpyxl/reader/excel.py", line 98, in _validate_archive
    archive = ZipFile(filename, 'r')
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/zipfile.py", line 1250, in __init__
    self.fp = io.open(file, filemode)
PermissionError: [Errno 1] Operation not permitted: 'fileName.xlsx'
  • 已尝试无效操作:
    • 执行代码前关闭Excel文件
    • 确认程序处于文件所在目录
    • 为Finder、Terminal、IDLE、Python Launcher和Excel授予全磁盘访问权限
可行解决方法

方法1:使用绝对路径读取文件

直接传入文件完整绝对路径,规避相对路径的权限解析问题:

import openpyxl
# 替换为你的文件实际绝对路径
wb = openpyxl.load_workbook('/Users/myname/Documents/fileName.xlsx')

方法2:移动文件到非系统保护目录

将Excel文件转移到Documents、Downloads这类MacOS权限限制较低的目录后,再尝试读取。

方法3:以只读模式打开文件

openpyxl的只读模式对文件权限要求更低,适合仅读取数据的场景:

import openpyxl
wb = openpyxl.load_workbook('fileName.xlsx', read_only=True)

方法4:更换其他Excel读取模块

若上述方法均无效,可尝试以下轻量替代模块:

  • pandas:快速读取表格并转换为列表,代码示例:
    import pandas as pd
    df = pd.read_excel('fileName.xlsx')
    data_list = df.values.tolist()
    
  • xlrd:仅支持旧版.xls格式,若处理.xlsx需安装1.2.0版本,代码示例:
    import xlrd
    wb = xlrd.open_workbook('fileName.xlsx')
    sheet = wb.sheet_by_index(0)
    data_list = [sheet.row_values(i) for i in range(sheet.nrows)]
    

内容的提问来源于stack exchange,提问作者Jess

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 07:55:19