在windows和linux上分割简单的特定路径

yur*_*snm 2 python linux windows

问题:

在以下情况下,我在 Windows 和 Linux 上有不同的行为。

import os
path = '..\\file.hdf'
norm_path = os.path.normpath(path)
splitted_path = os.path.split(norm_path)
print(splitted_path)
Run Code Online (Sandbox Code Playgroud)

行为

在 Windows 上我得到('', 'file.hdf')

在Linux上我得到('', '..\\file.hdf')

问题

有没有更好/具体的方法来使用 os.path ?

解决方法

好吧,用 可以很容易地修复它norm_path.split('\\'),但这根本不是动态的。

sni*_*ets 6

在 Linux 上,路径用正斜杠分隔。如果您想要一种独立于平台的方法,我建议使用os.sep而不是反斜杠:

import os
path = '..' + os.sep + 'file.hdf'
norm_path = os.path.normpath(path)
split_path = os.path.split(norm_path)
print(split_path)
Run Code Online (Sandbox Code Playgroud)