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

PyScript无法访问本地文件,能否上传至虚拟文件系统?

在PyScript中使用虚拟文件系统解决文件访问问题

完全可以通过PyScript的虚拟文件系统来加载你需要的文件,解决open()函数提示文件未找到的问题,以下是几种实用方法:

  • 静态嵌入文件
    如果你有固定的本地文件(比如配置文件、数据集),可以在HTML中用<py-file>标签将文件直接加载到虚拟文件系统:

    <!-- 假设你的文件和HTML同目录 -->
    <py-file src="your_data.csv" filename="your_data.csv"></py-file>
    

    完成后,在PyScript代码里直接用open("your_data.csv", "r")就能读取文件,无需额外处理。

  • 手动写入虚拟文件
    针对小体量内容或动态生成的数据,可通过PyScript内置的文件操作直接写入虚拟文件系统:

    # 写入内容到虚拟文件
    with open("config.txt", "w") as f:
        f.write("key1=value1\nkey2=value2")
    
    # 读取验证
    with open("config.txt", "r") as f:
        print(f.read())
    
  • 用户上传文件到虚拟系统
    若需要用户上传本地文件,可结合HTML文件输入框和PyScript处理:

    <input type="file" id="file-upload">
    <py-script>
      from js import document
      from pyodide import open_url
    
      def upload_handler(event):
          selected_file = event.target.files[0]
          # 读取上传文件的内容
          file_content = open_url(selected_file.url).read()
          # 将内容写入虚拟文件系统
          with open(selected_file.name, "w") as f:
              f.write(file_content)
          # 后续即可用open(selected_file.name)访问该文件
    
      document.getElementById("file-upload").addEventListener("change", upload_handler)
    </py-script>
    

你遇到的open()文件未找到错误,本质是PyScript运行在浏览器沙箱环境中,默认无法直接访问本地文件系统,只能读取虚拟文件系统内的文件。通过上述方法将文件加载到虚拟系统后,就能正常使用文件操作函数了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 17:41:04