如何在命令行中一个接一个地运行2个python文件?

时间:2018-09-07 03:08:05

标签: python bash

一个例子是:

python script1.py arg1 arg2

python script2.py arg1

其中arg1来自第一个python调用

2 个答案:

答案 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="'&#123;'"/>
      <xsl:variable name="rcurly" select="'&#125;'"/>

      <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`