【发布时间】:2018-03-14 06:48:56
【问题描述】:
我正在尝试但失败的做法是将 xslt 文件列表导入另一个 xslt 文件,而我在程序实际运行之前不知道要导入的文件的名称。
背景: 我正在为别人的(python)项目编写扩展机制。该项目使用 xslt 脚本将 xml 文档转换为 html。我在项目中创建了一个名为“扩展”的目录,我希望用户能够在这个扩展目录中放置任意子目录。每个子目录都代表一个扩展名,并且将包含许多不同的文件,其中可能包括一个 xslt 文件。
我有一个脚本,它扫描所有子目录中的 xslt 文件,然后写出一个新的 xslt 文件('combined.xsl'),其中包含一系列引用它找到的所有 xslt 文件的标签。然后我将“combined.xsl”导入到项目的主 xslt 文件中。
我的第一个问题是该项目通常会安装在管理员的目录中(例如 /usr/local/lib/python3.5/dist-packages/ 或类似目录),但由普通用户调用。这意味着当脚本尝试创建“combined.xsl”时,由于权限不足而无法写入。
我的下一个想法是让“combined.xsl”成为一个临时文件(使用 tempfile 模块),但是我无法从项目的主 xslt 文件中引用它,因为临时文件是在不同系统的不同位置创建的。
有没有办法使这些方法中的任何一种都起作用,或者我缺少一些完全不同的方法。我觉得这一定是一个不常见的问题,但它有点过于抽象,谷歌无法提供帮助。
【问题讨论】:
标签: python xslt permissions temporary-files add-on