0


【Python】路径报错Invalid argument,歪?!明明没有错为什么说我错?

OS打开文件代码如下,反复确认过路径是无误的,但是运行依然提供报错

Path=os.path.abspath("D:\07\01\address")
out_path=os.path.join(Path,"out_data")
Data=pd.read_stata(os.path.join(out_data,"address.dta"))

报错内容如下

[Errno 22] Invalid argument:'d:\\07\01\address\\\x07\x01\x07ddress\\out_data\\address.dta

反馈过来的路径是一堆莫名其妙的组合,电脑一会儿一会儿的宛如智障。(电脑说:你才是

真正问题出在路径中的分隔符,用的“\”被默认为转义符而非分隔符

一般情况下,常用路径分隔符有“/”,""和“\”。

MAC和Linux仅识别“/”作为路径分隔符,所以用反斜杠“\”会被报错。Windows复制粘贴的系统路径默认用的是反斜杠“\”,但同时兼容斜杠,也就是说斜杠“/”跟反斜杠“\”都可以使用。

但也因此产生了上面描述的问题,因为反斜杠“\”同时还被默认作为转义符进行使用。用于转义一些被赋予特殊意义的符号,比如双引号“ ”,一般被作为一段文本输入开始与结束的符号,如果想直接print出来而一对双引号,需要在前面加上反斜杠,如下

print \"这是一个引用\"

输出结果如下

“这是一个引用”

这个规则在MarkDown上也同样适用。

那如何将转义特殊符号的“\”进行转义呢?再加一个反斜杠,转义转义符,负负得正。

print \\"这是一个引用\\"

\“这是一个引用\”

这里第一个反斜杠是作为转义符来使用,所以只会显示第二个反斜杠。⤴️

所以最开始代码报错中用的反斜杠“\“被默认视为了转义符号,才会出现上图中报错的"x07\x01\xxxxxx”。此时将反斜杠,直接改写成“/”或者“\”即可。

这个问题只会在windosw系统当中出现,在平时使用中我们养成习惯直接用“/”即可以避免这个问题。

标签:

本文转载自: https://blog.csdn.net/weixin_42941127/article/details/117926883
版权归原作者 遍地滚豆豆 所有, 如有侵权,请联系我们删除。

“【Python】路径报错Invalid argument,歪?!明明没有错为什么说我错?”的评论:

还没有评论