如何将任何目录格式(windows、linux、mac)传递给函数并独立使用它os(python3)

How to pass any directory format (windows, linux, mac) to a function and use it os independently (python3)

您可以使 os 成为一个独立的文件名:

os.path.join(os.path.curdir, 'filename')

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

示例:

def magically_read_any_path_format_and_make_it_os_independent(input_file)
    ...
    return os_independent_format

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

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

谢谢

不确定您所说的 os 是什么意思独立于文档声明 "os.path module is always the path module suitable for the operating system Python is running on, and therefore usable for local paths" 意味着它可以为您提供本地所需的内容。

你也许可以 os.path.join(os.path.join(os.path.curdir, '') 这是相当 hacky

os.path.normpath(os.path.curdir) 这可能比您想要的更多,请参阅 the docs

如果您使用 python > 3.4,您可以使用 pathlib,它确实可以做到这一点。您从您的路径创建一个 Path 对象,它会为您处理所有事情。

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