我正在写一个运行程序的python脚本。需要引用路径或参数中的空格,但出于某种原因,除非使用双引号字符串,例如为什么看起来,我需要使用两个双引号来分隔文件路径?
DEFAULT_CLIENT = '""C:/Program Files/Borland/StarTeam SDK 14.0/bin""'
command =('stjava.exe -autologon -is -p ""'+src+'"" -fp ""'+dst+'"" '
'-filter "OI" "*" -f ""'+dst+'/config/bc.stjava""')
if not "StarTeam Cross-Platform Client" in os.getenv("PATH"):
print "[INFO] Star Team Client not found in path defaulting to: "+DEFAULT_CLIENT
command = DEFAULT_CLIENT+"/"+command
os.system(command)
这是为什么?如果我在这里做错了什么,那我该怎么做呢?
[更新]当调用os.system(command)
这找到应用程序正确:
command = r'"C:/Program Files/Borland/StarTeam SDK 14.0/bin/stjava.exe" '
command += '-autologon -is -p '
但这并不:
command = '"C:/Program Files/Borland/StarTeam SDK 14.0/bin/stjava.exe" '
command += '-autologon -is -p '
command += '"C:\a\b c\d"'
它说, 'C:\程序' 是无法识别的命令。争论中的路径似乎是一个问题,但我不知道为什么。
你可以请显示实际的字符串不适合你吗? – thefourtheye 2014-09-19 13:46:06
当然,在这里:'“C:/ Program Files/Borland/StarTeam SDK 14.0/bin”' – 2014-09-19 13:47:19
期望的输出字符串是什么?你可以使用os.sep作为路径分隔符。 – 2014-09-19 14:06:22