腹黑眼镜 发表于 2025-7-28 20:47

[已解决]python写入xlsx文件导致程序崩溃

本帖最后由 腹黑眼镜 于 2025-7-29 07:51 编辑

是这样,我有个pyqt5的小工具,主要功能就是帮我读取一堆xlsx,csv格式的文件,然后把我要的数据揉到一起

这个程序有段代码如下
class KpiWorker(QThread):
    State_updated = pyqtSignal(str)

    def __init__(self, target_dir, dfs):
      super().__init__()
      self.target_dir = target_dir
      self.dfs = dfs

    def run(self):
      **这里是数据处理过程,打码
      with pd.ExcelWriter(obj_group_file_path, engine='openpyxl') as writer:
            obj_group.to_excel(writer, sheet_name='Sheet1', index=False)

调试模式下,每次运行到这里,在指定的目录下会生成对应的文件,但该文件大小一直是0,没有数据写入
然后我把调试断掉,会提示
PermissionError: 拒绝访问。: 'C:\\Users\\xxx~1\\AppData\\Local\\Temp\\openpyxl.5r5zyyxj'

我把写入xslx文件的代码,改成写入csv格式,程序就正常运行,问了D老师也没结果,求助是什么问题,要怎么解决
因为生成的文件要给另一个程序用,那个程序只读xlsx或者xls文件。所以不想保存成csv

adso 发表于 2025-7-28 20:50

化肥会挥发 发表于 2025-7-28 20:58

Excel库用对了吗?
路径换成D盘试试,用系统盘总有权限问题。

— from HONOR PGT-AN00, Android 15, S1 Next Goose v3.5.99

腹黑眼镜 发表于 2025-7-28 21:03

回复2,3楼:
不是保存在C盘,我现在改成保存在程序同个目录下试试看,运行比较久一会才有结果

GJRstone 发表于 2025-7-28 21:09

问ai啊
看报错就是openpyxl没有c盘写入临时文件的权限,从ai的方法里整了个看着靠谱的

3. 指定不同的临时文件夹
openpyxl 默认使用系统临时目录,可以尝试手动指定一个有权限的临时目录:

python
import tempfile
import pandas as pd

# 设置临时目录(确保你有写入权限)
tempfile.tempdir = r"C:\Your\Custom\Temp\Path"# 替换为短路径,如 C:\temp

with pd.ExcelWriter(obj_group_file_path, engine='openpyxl') as writer:
    obj_group.to_excel(writer, sheet_name='Sheet1', index=False)

腹黑眼镜 发表于 2025-7-28 21:29

GJRstone 发表于 2025-7-28 21:09
问ai啊
看报错就是openpyxl没有c盘写入临时文件的权限,从ai的方法里整了个看着靠谱的

这个方法也是崩,修改后,错误提示会变成我指定的目录
修改保存的路径也不行

蜇灵 发表于 2025-7-28 21:36

建议问AI,回答比坛友快得多,水平也不差

古畑任三郎2015 发表于 2025-7-28 21:38

这种问题当然是问ai,照着做就行

FeteFrumoase 发表于 2025-7-28 21:41

腹黑眼镜 发表于 2025-7-28 21:45

回楼上各位
我就是问了AI没结果所以才来这里问的

GJRstone 发表于 2025-7-28 22:03

腹黑眼镜 发表于 2025-7-28 21:45
回楼上各位
我就是问了AI没结果所以才来这里问的

你又不放环境又不放逻辑,坛友也是帮你人肉ai啊。换目录了还报错说明不是目录有问题,是你openpyxl有问题啊,有虚拟环境查虚拟环境,没装过openpyxl就装openpyxl

王九的哥哥 发表于 2025-7-28 22:08

华蝶风雪 发表于 2025-7-28 22:13

最好把报错信息发完整,怀疑漏掉了真正的原因

棍机凹升龙 发表于 2025-7-28 22:31

你不会对ai也是说这些而不是抛给他报错信息的吧

—— 来自 samsung SM-F9460, Android 15, 鹅球 v3.5.99-alpha

Azcarlo 发表于 2025-7-28 23:06

writer引擎换成xlsxwriter试试看?

笨拙的机器人 发表于 2025-7-29 01:10

看起来是openpyxl的问题,先按楼上老哥的思路换个引擎,实在不行用wsl装ubuntu,在ubuntu上跑能避免windows各种恶心的问题

勿徊哉 发表于 2025-7-29 06:04

腹黑眼镜 发表于 2025-7-29 07:50

Azcarlo 发表于 2025-7-28 23:06
writer引擎换成xlsxwriter试试看?

谢谢,换成xlsxwriter后,目前是没问题了!
页: [1]
查看完整版本: [已解决]python写入xlsx文件导致程序崩溃