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



在这两种情况下,我正在做完全相同的事情,但是情况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)

最新更新