我有一个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