gpt4 book ai didi

ironpython - 如何在 Spotfire IronPython 脚本中安全地使用临时文件以供 Web 使用?

转载 作者:行者123 更新时间:2023-12-05 05:05:31 25 4
gpt4 key购买 nike

我正在尝试将 Spotfire 可视化导出到 xlsx 文件。为了导出数据,我需要能够将可视化数据写入临时文件。 IronPython(2.7.7) 脚本在作为 Spotfire 桌面应用程序运行时有效,因为它使用本地计算机的临时文件位置。但是,它在网络上不起作用,因为脚本没有权限写入 Path.GetTempFileName() 返回的服务器临时文件位置。

如何通过脚本安全地写入临时文件以便在网络中使用?

脚本:

from System.IO import Path, File, StreamWriter
from Spotfire.Dxp.Application.Visuals import TablePlot

tf = Path.GetTempFileName()
writer = StreamWriter(tf)

# visTable is a script parameter pointing to a TablePlot
visTable.As[TablePlot]().ExportText(writer)

在网络中运行时出错:

Could not perform action 'write_to_file'.

Could not execute script 'write_to_file': The directory name is invalid.


at Spotfire.Dxp.Application.Scripting.ScriptService.Execute(ScriptDefinition script, Dictionary`2 scope, InternalLibraryManager internalLibraryManager, NotificationService notificationService)
at Spotfire.Dxp.Application.Scripting.ScriptManager.<>c__DisplayClass8_0.<ExecuteScript>b__0()
at Spotfire.Dxp.Framework.Commands.CommandHistory.Transaction(Executor executor, Boolean visible, Boolean sticky, Guid stickyGuid, Boolean isHighlight)
at Spotfire.Dxp.Framework.Commands.CommandHistory.Transaction(String displayName, Executor executor)
at Spotfire.Dxp.Application.Scripting.ManagedScript.Execute(Dictionary`2 environment)
at Spotfire.Dxp.Application.HtmlTextAreaControls.ActionControl.ModifyCore(Object value)
at Spotfire.Dxp.Application.Visuals.HtmlTextArea.InteractWithControl(String id, Action`1 interaction)

IronPython 版本:2.7.7

Spotfire 版本:10.3.2.8

编辑:内置的右键单击导出功能不是一个选项,因为最终目标是注入(inject)我公司的合规信息。

最佳答案

您可以将临时文件位置设置为 Spotfire 服务器和用户都可以访问的网络驱动器。

我最好的建议是授权用户右键单击视觉对象以下载表格,因为这是最简单的方法并且不需要编码。

我已经实现了编写一些脚本以将数据导出为 CSV 格式,该格式在 Desktop Client 和 WebPlayer 中均有效,但它是 R、Python、Javascript 和 HTML 的混杂。可以在这里找到:My Spotfire Wiki Post

关于ironpython - 如何在 Spotfire IronPython 脚本中安全地使用临时文件以供 Web 使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60440311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com