转义序列如何在python os.path.exists()中工作?

时间:2018-04-04 09:00:55

标签: python python-3.x

我在Ubuntu系统中工作。 os.path.exists()如何将以下路径解析为True。

import os

apath = '/home/.//<user>/'
actual_path = '/home/<user>/'

os.path.exists(apath) #returns True
os.path.exists(actual_path) #returns True

我知道它是一个基本问题,但是Python会考虑&#39; ./'作为逃脱序列。

1 个答案:

答案 0 :(得分:4)

这不是Python问题,您在任何POSIX系统上使用有效路径。

  • .当前目录/existing/directory//existing/directory/.是同一条道路。将其与..(父目录的引用)进行比较。
  • //被视为单个/分隔符。

所以/home/.//<user>//home/./<user>/相同,与/home/<user>/相同。在Python或shell中。

如果您需要比较路径,则需要使用os.path.normpath() 规范化路径:

>>> import os.path
>>> os.path.normpath('/home/.//<user>/')
'/home/<user>'

对于跨平台应用程序,如果您需要“当前目录”的正确字符串,则可以使用os.curdir变量。对于当前的平台。