python函数传递参数时的转义问题

python函数传递参数时的转义问题

下面的代码中,region的第二个参数必须加r,或者写成"D:\test\",否则会因为没有转义报错。
如何让region的第二个参数不用加r,也不使用转义字符,只写成就"D:\test\"就能使用该函数?

或者说,有没有什么函数或方法可以代替原始字符串符号(r)?

     def region(name,path):

os.makedirs(path+name)

region("BH",r"D:\test\")


回答:

这个没有其它办法的,因为python中字符串定义的处理就决定了这样,而且即使你写成"D:\test\"可能也有问题,因为在不加r的字符串中\是转义字符,要表示为"D:\test\"的正确写法应该是"D:\\test\\"

我想你是处理路径中遇到这样的问题,你需要引入OS模块和path模块来帮助解决路径分隔符的问题。


回答:

很简单,不要用 \ 就好了。
可以换成 / 或者 \\

三者都是 windows 下的合法的路径分隔符

  • \
  • /
  • \\


回答:

你可以参考 Python 官方文档的 字符串与字节串字面值, 将一个未标注 rR 前缀的字符串字面值转换成带 r 的.
你可以写一个函数像这样

ESCAPISTS = {

"\\": "\\\\",

"\n": "\\n",

"\t": "\\t",

...

}

def primitive(a: str) -> str:

for char, primitive_char in ESCAPISTS.items:

a.replace(char, primitive_char)

return a

但是这不可能完全实现你的需求, 因为这并不是一个双射, 比如 \uxxxx 这样的转义符你几乎无法复原.
如果你真的需要 - 虽然得不偿失 - 考虑 Hack 一下, 让函数直接从脚本所在的文件扒下这串字符串.

如果你需要处理路径, 还是建议你参考 文件和目录访问.

以上是 python函数传递参数时的转义问题 的全部内容, 来源链接: utcz.com/p/938133.html

回到顶部