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

通过HTML调用含openpyxl的Python脚本时文件保存失败问题排查

问题原因及解决办法

核心问题:工作目录差异与浏览器沙箱限制

  • 直接运行Python脚本时,脚本的工作目录是它所在的本地文件夹,所以./DATA/New_WB.xlsx能正确指向你本地的目录。但PyScript运行在浏览器环境中,受限于浏览器的沙箱机制,无法直接访问本地文件系统的相对路径——它的文件操作是在浏览器提供的虚拟文件系统里进行的,和你的本地DATA文件夹完全隔离。
  • 用VS Code Live Server启动的是HTTP服务,此时页面的根路径是你的项目根目录,但PyScript不能直接读取或写入这个HTTP服务对应的本地文件系统路径,因为浏览器出于安全考虑,禁止网页直接操作本地文件。

可行的解决方法

1. 通过PyScript的下载功能导出文件

既然不能直接写入本地目录,可让用户主动下载生成的Excel文件,示例代码:

from openpyxl import Workbook
from pyscript import download

# 创建工作簿并写入内容
wb = Workbook()
ws = wb.active
ws['A1'] = "Sample Content"

# 先保存到PyScript的虚拟文件系统,再触发浏览器下载
wb.save("temp_wb.xlsx")
download("temp_wb.xlsx", filename="New_WB.xlsx")

用户下载文件后,可手动将其放到./DATA目录中(如果业务需要的话)。

2. 调整运行环境(若需自动写入本地目录)

浏览器沙箱的安全限制是硬性规则,PyScript作为浏览器端的Python运行环境,无法绕过这个限制直接读写本地文件。如果你的业务逻辑必须自动写入本地特定目录,建议还是用本地Python环境运行脚本,而非通过PyScript在网页中执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:12:35