0

0

PyScript 中如何安全加载外部文件到虚拟文件系统

聖光之護

聖光之護

发布时间:2026-02-26 22:04:03

|

865人浏览过

|

来源于php中文网

原创

PyScript 中如何安全加载外部文件到虚拟文件系统

PyScript 无法直接读取本地文件,但可通过 py-config 的 files 配置项将远程或本地托管的文件预加载至内置虚拟文件系统,使 open() 等标准 I/O 函数正常工作。

pyscript 无法直接读取本地文件,但可通过 `py-config` 的 `files` 配置项将远程或本地托管的文件预加载至内置虚拟文件系统,使 `open()` 等标准 i/o 函数正常工作。

在 PyScript 环境中,由于浏览器沙箱安全策略限制,Python 代码无法直接访问用户设备上的本地文件系统(例如调用 open('data.txt') 会触发 FileNotFoundError)。但这并不意味着文件操作不可行——PyScript 提供了基于内存的虚拟文件系统(Virtual File System, VFS),允许你在运行前将所需文件“注入”其中,从而让标准 Python 文件 API(如 open()、os.listdir()、pathlib.Path.read_text())无缝工作。

✅ 推荐方式:使用 的 files 配置项

这是当前(PyScript ≥ 2024.2.1)官方推荐、简洁且可靠的方案。你只需在 中声明一个 files 列表,每个条目指定文件 URL 和目标路径(相对于 / 根目录):

<py-config>
{
  "files": [
    {"src": "/data/config.json", "name": "config.json"},
    {"src": "/assets/input.csv", "name": "data/input.csv"},
    {"src": "https://example.com/model.pkl", "name": "models/weights.pkl"}
  ]
}
</py-config>

<py-script>
# 此时文件已存在于虚拟文件系统中
with open("config.json", "r") as f:
    config = f.read()
    print("Loaded config:", config)

from pathlib import Path
csv_path = Path("data/input.csv")
if csv_path.exists():
    print("CSV size:", csv_path.stat().st_size, "bytes")
</py-script>

? 关键说明

LM Studio
LM Studio

LM Studio 是一个桌面应用程序,可以在本地计算机上运行 LLM大语言模型。

下载
  • src 必须是同源 URL(即与当前 HTML 页面同域),或支持 CORS 的跨域资源;
  • name 是该文件在虚拟文件系统中的目标路径,支持子目录(如 "data/input.csv");
  • 所有文件会在 PyScript 初始化阶段自动下载并挂载,无需手动等待;
  • 加载完成后,open()、pathlib、csv、json 等模块均可直接使用,行为与本地 Python 完全一致。

⚠️ 注意事项与最佳实践

  • 本地开发调试?请启动 HTTP 服务
    浏览器禁止 file:// 协议下的跨源请求,因此切勿双击 HTML 文件打开。务必使用本地服务器,例如:

    # Python 内置服务器(端口 8000)
    python3 -m http.server 8000
    # 然后访问 http://localhost:8000/your-app.html

    或使用 Live Server(VS Code 插件)、npx serve 等工具。

  • 避免使用已弃用的 [[fetch]]
    虽然旧版文档提及 [[fetch]] 配置,但它语法复杂、错误处理不直观,且在新版中已被标记为 legacy。files 更语义清晰、容错更强,是唯一推荐路径。

  • 大文件与性能提示
    虚拟文件系统完全驻留在内存中,因此单个文件建议控制在几十 MB 以内;超大文件应考虑流式处理(如通过 fetch() + Response.arrayBuffer() + pyodide 的 pyodide.ffi.to_js() 手动桥接,但已超出基础 files 范畴)。

  • 路径区分大小写 & 根目录为 /
    虚拟文件系统的路径规则与 Unix 一致:"MyFile.txt" 和 "myfile.txt" 是两个不同文件;所有 name 均以 / 为根,但书写时省略前导 /(即 "data/log.txt" 对应 /data/log.txt)。

✅ 总结

只要将文件部署在可访问的 HTTP 服务下,并通过 的 files 正确声明,PyScript 就能为你构建一个功能完备的虚拟文件系统。从此,你的算法可以像在本地 Python 环境中一样自然地使用 open()、读取配置、加载数据集或序列化模型——安全、简洁、开箱即用。

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

449

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

546

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

325

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

81

2025.09.10

点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

195

2023.11.24

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

478

2023.08.14

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

481

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

447

2023.11.14

Golang 实际项目案例:从需求到上线
Golang 实际项目案例:从需求到上线

《Golang 实际项目案例:从需求到上线》以真实业务场景为主线,完整覆盖需求分析、架构设计、模块拆分、编码实现、性能优化与部署上线全过程,强调工程规范与实践决策,帮助开发者打通从技术实现到系统交付的关键路径,提升独立完成 Go 项目的综合能力。

1

2026.02.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号