由于我同时使用Windows的cmd.exe
和msysgit的bash
,尝试访问os.getcwd()
输出的Windows路径会导致Python尝试访问以驱动器号和冒号开头的路径,例如C:
,bash
正确地确定了一个无效的unix路径,在本例中应该以/c/
开头。但是,如果脚本在bash
中运行,我如何修改Windows路径以使其成为msys等效路径?
很难看,但应该可以工作,除非您为Windows:创建环境变量SHELL=bash
def msysfy(dirname):
import os
try:
shell = os.environ['SHELL']
except KeyError: # by default, cmd.exe has no SHELL variable
shell = 'win'
if os.path.basename(shell)=='bash' and dirname[1] == ':':
return '/' + dirname[0].lower() + '/' + dirname[2:]
# don't worry about the other backslashes, msys handles them
else:
return dirname