Python 系统调用 (os.system) 在两种情况下无法按预期使用相同的字符串

Python system call (os.system) doesn't work as expected with the same string in two cases

我在这两种情况下做的是完全相同的事情,但情况 1 不起作用。任何人都知道为什么 Python 会这样?

# Case 1
setup_folder = "/home/svimal/Data/ABoVE/100_catchments/VIC_setup/05MG001/"
os.system('../VIC_4.1.2.k.Purdue/vicNl -g  ' + setup_folder + "/Global_Param")
# Case 2
os.system("../VIC_4.1.2.k.Purdue/vicNl -g /home/svimal/Data/ABoVE/100_catchments/VIC_setup/05MG001/GlobalParam")

此代码段将创建一个参数 /home/svimal/Data/ABoVE/100_catchments/VIC_setup/05MG001//Global_Param - 请注意 "Global_Param" 之前的 //

您可以使用 os.path.join 来避免自己处理这些斜杠:

arg = os.path.join('/home/svimal/Data/ABoVE/100_catchments/VIC_setup/05MG001/', 'Global_Param')
os.system('../VIC_4.1.2.k.Purdue/vicNl -g  ' + arg)