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

使用PyScript读取CSV文件时出现“No such file or directory”错误求助

解决PyScript读取本地CSV文件的FileNotFoundError问题

问题原因

PyScript基于Pyodide运行在浏览器沙箱环境中,其虚拟文件系统与本地操作系统的文件系统完全隔离。即使CSV文件与HTML文件处于同一目录,直接使用pd.read_csv("salaries.csv")也无法访问——因为该代码会在Pyodide的虚拟文件系统中查找文件,而非本地磁盘。

解决方案

通过浏览器的fetch API获取CSV文件内容,再传递给pandas解析。具体实现如下:

<py-env>
  - matplotlib
  - numpy
  - seaborn
  - pandas
</py-env>

<py-script>
  import pandas as pd
  from io import StringIO
  import js

  async def load_csv():
      # 通过fetch请求获取本地CSV文件
      response = await js.fetch("salaries.csv")
      # 将响应转为文本格式
      csv_content = await response.text()
      # 用StringIO包装文本,供pandas读取
      df = pd.read_csv(StringIO(csv_content))
      
      # 示例:打印数据框前5行验证
      print(df.head())

  # 执行异步加载函数
  load_csv()
</py-script>

额外注意事项

  • 避免file://协议运行:直接双击HTML文件以file://协议打开时,可能触发浏览器的CORS限制,导致fetch请求失败。建议启动本地静态服务器运行:
    # 在HTML文件所在目录执行
    python -m http.server
    
    然后访问http://localhost:8000/你的文件名.html即可正常加载CSV。
  • 关于os库与pwd命令:Pyodide中的os模块操作的是虚拟文件系统,与本地磁盘无关;pwd命令在Pyodide环境中默认不可用,因此这些方法无法定位到本地CSV文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:25:42