python 跨平臺父路徑寫法
本文介紹一種跨平臺的 Python 父路徑寫法。可以避免硬編碼時要考慮到的不同操作系統有路徑分隔符的問題(/
unix, \
windows)。
代碼如下:
# 參考:https://stackoverflow.com/a/14150750/4394850
uppath = lambda _path, n: os.sep.join(_path.split(os.sep)[:-n])
workingDir = uppath(os.path.abspath(__file__), 4)
假如, __file__
是 test.py,
完整路徑(os.path.abspath(__file__)
)是 D:\test1\test2\test3\test4\test.py
則以上代碼中的 workingDir
是 D:\test1
在 python REPL 中測試如下:
>>> import os
>>> uppath = lambda _path, n: os.sep.join(_path.split(os.sep)[:-n])
>>> uppath(r'D:\test1\test2\test3\test4\test.py', 4)
'D:\\test1'