openpyxl: PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问 float object has no attribute reindex

1.首先,问题的解决办法:

是因为列宽设置出错了,有一行设置列宽的时候,忘记加.width来设置了:

sheet.column_dimension["A"] = 20 # 错误,没有加.width,竟然不报这行出错,巨坑

# 以下改正后
sheet.column_dimension["A"].width = 20

""" 补充,若想使用数字索引来设置列宽,则需要将数字转换为对应列的字母
    因为openpyxl的设计是参考了excel表格的设计的:
    列号使用字母(必须是str)标识,行号使用数字(必须是int表示)
    openpyxl提供了一个属性可以用于读取某单元格的列字母序号,可以用于将数字索引转换为字母序号
"""
col_letter = sheet.cell(row=1, column=2).column_letter # 假设要转换第2列,得到列的字母序号
print(f"转换后序号为{col_letter}")
sheet.column_dimension[col_letter] = 20

2.问题的坑分析:

报错信息如下

float object has no attribute reindex
______
_____________
_________________
PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问

 报错定位的最后出现错误的代码行是:

workbook.save(file_path)

        这个报错在这一行,让我误以为是保存文件时发生错误,于是排查了很久到底是否有重复进程或者重复打开文件,后面发现并没有这个问题

        然后,我又去排查了是不是函数传参导致的问题,后面试了很久还是没有头绪。然后开始排查代码内部每一句的错误,最后查了下float object has no attribute reindex,正好在stackOverFlow看到有个人遇到类似的问题,再排查我自己的代码,才发现错误所在。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是由于在Windows系统中,另一个程序正在使用指定的文件,因此无法访问。这可能是因为文件正在被其他程序打开或被其他进程占用。解决这个问题的方法有几种。 首先,你可以尝试关闭正在使用文件程序进程。你可以通过任务管理器来查找并结束相关的进程。然后,再次尝试删除或访问该文件。 如果关闭相关进程无效,你可以尝试重启计算机。重启后,所有的进程都会被关闭,这样你就可以访问或删除文件了。 另外,你还可以使用一些工具来查找并解决文件被占用的问题。例如,可以使用"Process Explorer"这样的工具来查找并结束正在使用文件进程。 最后,如果以上方法都无效,你可以尝试修改文件的权限。右键点击文件,选择"属性",然后在"安全"选项卡中修改文件的权限,确保你有足够的权限来访问或删除该文件。 总结起来,解决"PermissionError: \[WinError 32\] 另一个程序正在使用文件进程无法访问"的方法包括关闭相关进程、重启计算机、使用工具查找并结束进程,以及修改文件的权限。希望这些方法能够帮助你解决问题。 #### 引用[.reference_title] - *1* *2* [【纠错】——错误:PermissionError: [WinError 32] 另一个程序正在使用文件进程无法访问。“+解决方案](https://blog.csdn.net/qq_45769063/article/details/124521984)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [解决报错:PermissionError: [WinError 32] 另一个程序正在使用文件进程无法访问PermissionError: ...](https://blog.csdn.net/u014546828/article/details/108367409)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值