有问题。下面是我在必须处理跨平台路径时使用的代码。还有比这更好的方法吗?
import platform
my_os = platform.system()
if my_os == "Windows":
slash = "\"
else:
slash = "/"
代码中的随机示例:
source_path = ""
for part in __file__.split("/")[:-1]:
source_path += (part + slash)
print(source_path)
函数os.path.join
.有关详细信息,请参阅文档:https://docs.python.org/3/library/os.path.html#os.path.join
不要自己加入路径。标准库附带os.path
和pathlib
模块,抽象出(大多数(平台差异。
例如,获取当前模块目录为:
import os.path
source_path = os.path.dirname(os.path.abspath(__file__))
或
import pathlib
source_path = pathlib.Path(__file__).resolve().parent
这两者都为当前平台提供了适当的绝对路径。
还有 os.sep
值,它是当前平台的主目录分隔符字符,以及可以使用多个路径分隔符的平台(如 Windows(的os.altsep
。
标准库版本可用于处理特定于平台的边缘情况,例如 Windows 上的混合正斜杠和反斜杠、驱动器名称和 UNC 路径。