python - 在两种情况下,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)
推荐阅读
- reactjs - 在测试运行期间隐藏编译警告
- sharepoint - 如何过滤在 Sharepoint 2013 中创建的 24 小时后的项目
- angular - 通过输入调用模板名称
- sql-server - 可以将 csv 数据读入 SQL Server / SSMS,只有读取权限
- python - Python MySQL 不正确的字符串值
- javascript - 在词树可视化中使用大量字符串
- react-native - 有什么方法可以用 react native ScrollView onScroll 钩子制作动画吗?
- javascript - React Native 中的“使用 `--clearCache` 标志运行打包程序”是什么意思?
- ansible - ansible 从保险库中读取用户名和密码
- javascript - Geolocation Leaflet Marker not removing old one