python在windows下文件路径的解决方案

30次阅读

共计 666 个字符,预计需要花费 2 分钟才能阅读完成。

在 windows 下编程,我们经常会遇到路径相关的问题,下面解释下原因,并给出 python 的解决方案。

为什么 windows 的路径在编程时经常会出问题?

windows 访问文件默认用 \ 做为路径的分隔符,而 \ 可以作为转义字符。例如,\t,\a表示一个字符,此时 \ 是转义字符,而 \m 表示两个字符。

可以用代码验证:

>>>len('\t')
>>>1
>>>len('\a')
>>>1
>>>len('\a')
>>>2

好,了解这个后,我们看下 windows 路径,如果路径中后面刚好是能转义字符,那代码就会识别为转义字符,这就导致路径解析错误。例如 ”c:\test\t.txt”,刚好有 ’\t’,这就被解析为转义字符,路径就会错误。而如果路径为 ”c:\money\m.xls”,这样的话路径就不会解析错误。

可是,我们总不能为此去修改文件名吧,当然有别的办法,下面介绍下解决方案。

如何解决 python 在 windows 下的路径问题?

  • 【推荐】不要使用 \, 直接使用/,而且/ 在 windows 和 linux 下都适用。
'C:/mydir'
  • 用双斜线\\
'C:\\mydir'
  • 使用 raw string 的标记 r
r'C:\mydir'
  • 【推荐】使用 os.path 模块函数,可以根据操作系统选择正确的路径符
os.path.join('C:', dir1, dir2, myfile)
  • 使用最新的 pathlib 模块
pathlib.Path(mydir, myfile)

或者

pathlib.Path(mydir) / myfile

参考:https://stackoverflow.com/que…

正文完
 0