Python中含$的Windows共享路径报错,如何修改路径使其生效?
解决Windows共享路径在Python中的报错问题
嘿,这个问题我之前也碰到过!Windows共享路径在Python里确实容易踩转义的坑,我来给你拆解一下怎么解决~
首先说下你代码里的问题:在Python字符串中,反斜杠\是转义字符,比如你写的\d会被Python当成无效的转义序列(正则里\d代表数字,但普通字符串这么写会导致路径解析错误),而且单个反斜杠无法正确表示路径里的分隔符,这就导致你的路径被解析错了,自然找不到对应的共享目录。
下面给你几种可行的修改方案:
方案1:使用原始字符串(最简单直接)
在字符串前面加r,这样Python会把字符串里的反斜杠当成普通字符,不会进行转义处理:
import os folder = "你的文件夹名" # 替换成实际的folder值 workplace = r"\\147.134.45.32\d$\output\mil/" + folder + "/" if not os.path.exists(workplace): os.mkdir(workplace)
建议统一路径分隔符,要么全用反斜杠,要么全用正斜杠,避免混用可能带来的问题。
方案2:用双反斜杠替换单反斜杠
把每个单反斜杠改成双反斜杠,这样每个\\会被解析成一个实际的\:
import os folder = "你的文件夹名" workplace = "\\\\147.134.45.32\\d$\\output\\mil/" + folder + "/" if not os.path.exists(workplace): os.mkdir(workplace)
方案3:用路径拼接工具(更规范,推荐)
Python的os.path.join或者pathlib模块可以帮你自动处理路径分隔符,避免手动拼接的错误,而且跨平台性更好:
用os.path.join
import os folder = "你的文件夹名" # 先定义共享路径的基础部分,用原始字符串避免转义 base_path = r"\\147.134.45.32\d$\output\mil" workplace = os.path.join(base_path, folder) # 用os.makedirs代替mkdir,能自动创建多级目录(如果folder里包含子目录的话) if not os.path.exists(workplace): os.makedirs(workplace)
用pathlib(Python3.4+推荐)
from pathlib import Path folder = "你的文件夹名" base_path = Path(r"\\147.134.45.32\d$\output\mil") workplace = base_path / folder # 直接用/拼接路径,非常直观 if not workplace.exists(): workplace.mkdir(parents=True) # parents=True表示自动创建父目录
这些方法都能帮你正确解析Windows共享路径,解决报错问题~
内容的提问来源于stack exchange,提问作者milad
相关产品推荐
相关产品推荐

