一个例子是:
python script1.py arg1 arg2
python script2.py arg1
其中arg1来自第一个python调用
答案 0 :(得分:1)
script1如何返回其结果?如果在标准输出中,请尝试:
let $stuff :=
document {
object-node {
"SomeProperty": object-node {
"LowProperty1":"some string",
"LowProperty2":"some string",
"LowProperty3": array-node { "some string 1", "some string 2"}
}
}
}
let $target := xdmp:unpath("/EvenLowerProperty/LowestProperty1", (), $stuff)
return
xdmp:xslt-eval(
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
xdmp:dialect="1.0-ml">
<xsl:output method="text"/>
<xsl:variable name="lcurly" select="'{'"/>
<xsl:variable name="rcurly" select="'}'"/>
<xsl:template match="node()">
<xsl:apply-templates select="." mode="name"/>
<xsl:apply-templates select="." mode="value"/>
</xsl:template>
<xsl:template match="array-node()/node()">
<xsl:apply-templates select="." mode="value"/>
</xsl:template>
<xsl:template match="node()" mode="name">
<xsl:if test="string(node-name(.))!=''">"<xsl:value-of select="node-name(.)"/>": </xsl:if>
</xsl:template>
<xsl:template match="text()" mode="value">
<xsl:text>"</xsl:text><xsl:value-of select="."/><xsl:text>"</xsl:text>
<xsl:if test="following-sibling::node()">, </xsl:if>
</xsl:template>
<xsl:template match="number-node() | boolean-node()" mode="value">
<xsl:value-of select="."/>
<xsl:if test="following-sibling::node()">, </xsl:if>
</xsl:template>
<xsl:template match="object-node()" mode="value">
<xsl:value-of select="$lcurly"/>
<xsl:apply-templates select="node()"/>
<xsl:value-of select="$rcurly"/>
<xsl:if test="following-sibling::node()">,</xsl:if>
</xsl:template>
<xsl:template match="array-node()/object-node()" mode="value">
<xsl:value-of select="$lcurly"/>
<xsl:apply-templates select="node()"/>
<xsl:value-of select="$rcurly"/>
<xsl:if test="following-sibling::node()">,</xsl:if>
</xsl:template>
<xsl:template match="array-node()" mode="value">
<xsl:value-of select="'['"/>
<xsl:apply-templates select="node()"/>
<xsl:value-of select="']'"/>
<xsl:if test="following-sibling::node()">,</xsl:if>
</xsl:template>
<xsl:template match="null-node()" mode="value">
<xsl:value-of select="'null'"/>
<xsl:if test="following-sibling::node()">, </xsl:if>
</xsl:template>
<xsl:template match="SomeProperty/LowProperty1">
<xsl:apply-templates select="." mode="name"/>
<xsl:text>"bar"</xsl:text>
<xsl:if test="following-sibling::node()">, </xsl:if>
</xsl:template>
</xsl:stylesheet>,
$stuff
)
python script2.py $(python script1.py arg1 arg2)
运行第一个脚本,并将stdout输出作为第二个脚本的参数。
答案 1 :(得分:0)
使用$(...)或反引号是一种品味,我更喜欢反引号:
python script2.py `python script1.py arg1 arg2`