有问题。以下是我必须处理跨平台路径时使用的代码。有没有比这更好的方法了?
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)
答案 0 :(得分:5)
函数os.path.join
。有关更多信息,请参阅文档:https://docs.python.org/3/library/os.path.html#os.path.join
答案 1 :(得分:4)
不要自己加入路径。标准库带有os.path
和pathlib
模块,它们抽象了(大多数)平台差异。
例如,获取当前模块目录为:
error: no match for ‘operator>’ (operand types are ‘Z2’ and ‘int’)
if (a==Z2::Plus || a>0){
~^~
或
import os.path
source_path = os.path.dirname(os.path.abspath(__file__))
两者都为您提供了当前平台的适当绝对路径。
还有os.sep
value,这是当前平台的主目录分隔符,而对于os.altsep
,例如Windows,可以使用多个路径分隔符的平台。
可以使用标准库版本来处理特定于平台的边缘情况,例如Windows上的混合正斜杠和反斜杠,驱动器名称和UNC路径。