首页 > 解决方案 > 如何将任何目录格式(windows、linux、mac)传递给函数并独立使用它(python3)

问题描述

您可以使用以下命令使 os 独立于文件名:

os.path.join(os.path.curdir, '文件名')

但我需要别的东西。我希望我的函数采用任何路径格式(windows、linux、mac),将其转换为与操作系统无关的格式,以便将它分配给一个变量并在任何操作系统上使用它。另外,请注意文件名不一定在当前目录中。

例子:

def magically_read_any_path_format_and_make_it_os_independent(input_file)
    ...
    return os_independent_format

# my variable
file = magically_...(input_file)

PS我知道我可以检查它是一个还是另一个操作系统并进行相应的转换,但是有没有更自动化和pythonic的东西?os 或 pathlib 或其他地方的东西?

谢谢

标签: pythondirectoryoperating-systempathlib

解决方案


如果您使用的是 python > 3.4,您可以使用pathlib它,它就是这样做的。你从你的路径创建一个Path对象,它会为你处理一切。

在旧版本的 Python 上,只要您使用os.path所需的任何路径操作,并将 Unix 格式用于任何硬编码常量以及os.path.normpath,它应该适用于任何操作系统。


推荐阅读