如何使用 JMP Python 编写 .jmp 文件您好,我正在使用 JMP19.1.1 版本。
我看到了一些如何使用 JMP 或 JSL 打开文件、添加用于绘图的 jsl 脚本并运行它们的示例。
有没有使用 JMP Python 打开 csv 文件并生成包含图表的 .jmp 文件的示例?大家都是怎么做的?
阿德里安
自动化和脚本编写基础数据分析与建模数据访问回复:如何使用 JMP Python 编写 .jmp 文件可以使用DataTable的节省方法保存数据。

要添加表格脚本,您可以使用true_jsl或带有 jmp 。表达的脚本 。

回复:如何使用 JMP Python 编写 .jmp 文件你好,
谢谢回复。我指的是不使用 jmp 库。我指的是使用 Python 代码处理数据,并输出 csv 文件。我想改成写入 .jmp 文件。有什么方法可以做到吗?例如,直接将 Pandas 数据帧转换为 .jmp 文件?
谢谢
回复:如何使用 JMP Python 编写 .jmp 文件据我所知,不行。你需要在 JMP 内部运行 Python 代码。
回复:如何使用 JMP Python 编写 .jmp 文件以下是我尝试运行的命令:
from pathlib import Path
导入 jmp
csv_path = Path(r"C:\Work\debug\jmp_debug\CT_Pro_PRO0CV2_pass_fail_05302026.csv")
out_path = Path(r"C:\Work\debug\jmp_debug\CT_Pro_PRO0CV2_pass_fail_05302026.jmp")
print("打开:", csv_path)
dt = jmp.open(str(csv_path))
print("正在保存:", out_path)
dt.save(str(out_path))
print("完成")
我在 PowerShell 中这样运行:`& "C:\Program Files\JMP\JMP\19\jmp.exe" -R "C:\Work\debug\jmp_debug\jmp_csv_to_jmp_simple.py"`。问题是它会弹出三个窗口。请问有没有办法以无头模式运行 JMP?也就是说,运行它的时候不弹出这么多窗口?
回复:如何使用 JMP Python 编写 .jmp 文件直接使用 .jmp 文件的主要原因是这些 CSV 格式的文件大小在 4-10 GB 之间,处理起来非常麻烦。理想情况下,我们可以将 pandas 数据帧传递给 jmp 表并写入数据。
回复:如何使用 JMP Python 编写 .jmp 文件这真是太麻烦了。看来确实没有办法让它以无头模式运行。这真是令人惊讶。一定是我弄错了,或者没有找到正确的文档。如果有人知道如何以无头模式运行 jmp,那就太好了。也就是说,我可以在脚本中运行它,而不会弹出三四个新窗口。
回复:如何使用 JMP Python 编写 .jmp 文件在 JMP 19.1.3 和纯 Python 3.13.3(非 JMP 环境)中,我得到了以下改进。现在只会弹出 .jmp 表的创建信息。所以这已经接近解决方案了。我仍然很想知道是否有关于无头模式的信息?
from pathlib import Path
导入时间
导入 win32com.client
def jsl_quote(path_or_text) -> str:
text = str(path_or_text)
text = text.replace("\\", "\\\\").replace('"', '\\"')
返回 f'"{text}"'
csv_path = Path(r"C:\Work\debug\jmp_debug\05302026.csv")
out_path = Path(r"C:\Work\debug\jmp_debug\05302026.jmp")
jmp = win32com.client.Dispatch("JMP.Application")
# 先尝试设置为 False。如果仍然无效,则在调试时设置为 True。
jmp.Visible = False
jsl = f"""
名称默认值为此处(1);
dt = Open({jsl_quote(csv_path)},Invisible);
dt << Save As( {jsl_quote(out_path)} );
关闭(dt,不保存);
"""
print("正在运行 JSL...")
jmp.RunCommand(jsl)
# 如果 RunCommand 在保存完成之前返回,请给 JMP 一点时间。
time.sleep(2)
print("已保存?", out_path.exists(), out_path)
回复:如何使用 JMP Python 编写 .jmp 文件处理大型文件时,CSV 格式非常繁琐。我的建议是将文件写入 Parquet 格式,然后在 JMP 中导入 pyarrow 库,加载 Parquet 文件。它可以几乎零延迟地转换为 pandas DataFrame。JMP 可以直接读取 pandas 列来构建数据表,并且具有 `jmp.from_dataframe(df)` 函数。如果您使用的是 pandas 3.0 或更高版本,他们已经开始发出一些弃用警告,但这些问题在 JMP 的开发版本中已经得到解决,可以直接使用 pyarrow 的 PyCapsule 接口。CSV 格式也存在格式不精确的问题。请检查您的小数位数。字符串到双精度浮点数的转换可能会存在细微差异,尤其是在从数值转换为 CSV 格式然后再转换回来的情况下。
回复:如何使用 JMP Python 编写 .jmp 文件如果您想使用除 csv 以外的其他格式,JMP 可以原生读写 sqlite 文件。
目前,在写入/导出时,每个 JMP 数据表都会生成一个 SQLite 文件。SQLite 文件中可以包含多个表。
回复:如何使用 JMP Python 编写 .jmp 文件sqlite3 的最大列数限制为 64K。如果你的文件数量低于这个限制,应该没问题,但我建议你也检查一下生成的数据库大小。如果你的文件主要是文本,那么数据库大小可能不会缩小太多。数值文件占用的空间应该比 CSV 文件小得多。