如何以 shell 依赖格式获取 cwd?
Posted
技术标签:
【中文标题】如何以 shell 依赖格式获取 cwd?【英文标题】:How to get the cwd in a shell-dependend format? 【发布时间】:2016-05-18 08:02:58 【问题描述】:由于我同时使用 Windows 的 cmd.exe
和 msysgit 的 bash
,因此尝试访问 os.getcwd()
的 Windows 路径输出会导致 Python 尝试访问以驱动器号开头的路径,并且冒号,例如C:\
,bash
正确地确定了一个无效的 unix 路径,在这个例子中它应该以 /c/
开头。但是如何修改 Windows 路径以使其成为 msys-equivalent iff 脚本在 bash
内运行?
【问题讨论】:
相关:How to run a script which can determine whether cmd.exe or gnu mingw shell is running 【参考方案1】:丑陋但应该可以工作,除非您为 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
【讨论】:
以上是关于如何以 shell 依赖格式获取 cwd?的主要内容,如果未能解决你的问题,请参考以下文章