如何将任意目录格式(windows、linux、mac)传递给函数并在不同操作系统中独立使用(python3)?

2024-06-16 11:11:00 发布

您现在位置:Python中文网/ 问答频道 /正文

您可以使用以下选项使操作系统独立于文件名:

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

但我需要别的东西。我希望我的函数采用任何路径格式(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)

另外,我知道我可以检查它是一个操作系统还是另一个操作系统,并进行相应的转换,但有什么更自动化和python的吗?在os或pathlib或其他地方

谢谢


Tags: path函数路径formatinputos文件名格式
2条回答

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

在较早版本的Python上,只要使用os.path进行所需的任何路径操作,并将Unix格式与os.path.normpath一起用于任何硬编码常量,就可以在任何操作系统上工作

不确定您所说的操作系统独立是什么意思,docs声明“os.path module始终是适合Python运行的操作系统的路径模块,因此可用于本地路径”,这意味着它提供了您在本地需要的东西

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

或者

os.path.normpath(os.path.curdir)哪个可能比你想要的做得更多,请参见the docs

相关问题 更多 >