VSCode Git Bash终端运行Python脚本时参数被异常修改问题求助
问题原因
这是Git Bash(基于MSYS2)的路径自动转换机制搞的鬼。当你传入以/开头的参数时,Git Bash会把它当成类Unix风格路径,自动映射到Git安装目录下的对应子路径,所以/some/folder就被转成了C:/Users/defaultuser/AppData/Local/Programs/Git/some/folder。而不带开头/的相对路径不会触发这个转换,因此输出正常。
解决方案
有几种实用的解决办法:
临时禁用路径转换,在执行命令前加上
MSYS_NO_PATHCONV=1:MSYS_NO_PATHCONV=1 python test.py --path /some/folder这样Python就能收到原始的
/some/folder参数,完全符合预期。给路径参数套双引号,并且在开头多写一个
/,让Git Bash把它识别成网络路径,避免本地路径转换:python test.py --path "//some/folder"这种情况Python会收到
//some/folder,如果业务需要单/开头的路径,在脚本里加一行处理就行,比如:if args.path.startswith('//'): args.path = args.path[1:]用单引号直接包裹路径参数(部分场景下有效,取决于Git Bash的配置):
python test.py --path '/some/folder'
内容的提问来源于stack exchange,提问作者Conor
相关产品推荐
相关产品推荐

