我正在尝试学习如何在Python脚本中使用Jenkins的变量。我已经知道需要调用变量,但是我不确定在使用os.path.join()的情况下如何实现它们。
我不是开发人员;我是技术作家。这段代码是别人写的。我只是在尝试调整Jenkins脚本,以便对其进行参数化,因此我们不必为每个发行版都修改Python脚本。
我在Jenkins作业中使用内联Jenkins python脚本。 Jenkins字符串参数是“ BranchID”和“ BranchIDShort”。我遍历了许多问题,这些问题涉及如何在Python脚本中建立变量,但是对于os.path.join(),我不确定该怎么做。
这是原始代码。我添加了从Jenkins参数建立变量的部分,但是我不知道如何在os.path.join()函数中使用它们。
# Delete previous builds.
import os
import shutil
BranchID = os.getenv("BranchID")
BranchIDshort = os.getenv("BranchIDshort")
print "Delete any output from a previous build."
if os.path.exists(os.path.join("C:\\Doc192CS", "Output")):
shutil.rmtree(os.path.join("C:\\Doc192CS", "Output"))
我希望输出如下:c:\ Doc192CS \ Output
如果执行以下代码,恐怕是这样:
if os.path.exists(os.path.join("C:\\Doc",BranchIDshort,"CS", "Output")):
shutil.rmtree(os.path.join("C:\\Doc",BranchIDshort,"CS", "Output"))
我将得到:c:\ Doc \ 192 \ CS \ Output。
在这种情况下是否可以使用BranchIDshort变量获取输出c:\ Doc192CS \ Output?
答案 0 :(得分:1)
用户@Adonis作为注释提供了正确的解决方案。这是他说的话:
确实您是对的。您想要做的是:
os.path.exists(os.path.join("C:\\","Doc{}CS".format(BranchIDshort),"Output"))
(简而言之,请为第二个参数使用格式字符串)
因此,完整的更正代码是:
import os
import shutil
BranchID = os.getenv("BranchID")
BranchIDshort = os.getenv("BranchIDshort")
print "Delete any output from a previous build."
if os.path.exists(os.path.join("C:\\Doc{}CS".format(BranchIDshort), "Output")):
shutil.rmtree(os.path.join("C:\\Doc{}CS".format(BranchIDshort), "Output"))
谢谢你,@ Adonis!