我在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; ./'作为逃脱序列。
答案 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
变量。对于当前的平台。