Python,如何创建以windows或linux风格开始的通用路径名



我有一个INI文件要读写:

> from configparser import ConfigParser
> 
> my_ini_config =
> ConfigParser.read('.\scripts\trio_ircproxy\configuration\default.ini')

现在,我如何允许在linux和windows上使用该路径名,反之亦然?

> from configparser import ConfigParser
> 
> my_ini_config =
> ConfigParser.read('./scripts/trio_ircproxy/configuration/default.ini')

它是linux格式的。我只想使用一种风格,也希望包括MacOS。我该如何完成这项任务?

我有一个名为genericpath的模块,但它说不要直接使用该模块。我甚至加载它吗?我需要担心我使用的操作系统以及我如何访问文件系统吗?比如,它能正常工作吗?

您可以使用os.path.join()方式或pathlib方式。

os.path.join((:

import os
cf_file = os.path.join(".", "scripts", "trio_ircproxy",
"configuration", "default.ini")
my_ini_config = ConfigParser.read(cf_file)

pathlib:

from pathlib import Path
p = Path('.')
q = p / 'scripts' / 'trio_ircproxy' / 'configuration' / 'default.ini'
my_ini_config = ConfigParser.read(q)

一种直接且可读的方法是使用pathlib模块的Path功能,如下所示:

from pathlib import Path
my_path=Path('./scripts/trio_ircproxy/configuration/default.ini')
my_ini_config = ConfigParser.read(my_path)

Path获取一个可能使用斜杠(/(、反斜杠((或双反斜线(\(格式化的路径字符串,并返回一个根据使用的操作系统格式化的路径串:

# any of the following lines
my_path=Path('./scripts/trio_ircproxy/configuration/default.ini')
# my_path=Path('.scriptstrio_ircproxyconfigurationdefault.ini')
# my_path=Path('.\scripts\trio_ircproxy\configuration\default.ini')
print(my_path)
# prints './scripts/trio_ircproxy/configuration/default.ini' on Mac and Linux
# prints '.scriptstrio_ircproxyconfigurationdefault.ini' on Windows

最新更新