gpt4 book ai didi

python - '/' or '\' 路径?

转载 作者:行者123 更新时间:2023-12-05 09:36:38 27 4
gpt4 key购买 nike

我在与 friend 共享文件时遇到了这个问题...

我有 windows,一些使用 mac,另一些使用 Linux。当我共享包含创建目录命令的 python 文件时,例如:

Path_Results = os.path.dirname(Path_Definition)+'\Results'

该目录没有创建,因为在 Windows 中使用\,而在 mac 和 linux 中使用/。有什么想法可以创建更通用的脚本吗?

提前致谢

最佳答案

使用pathlib.Path。然后你将不再关心 /\

在 Windows 上:

>>> from pathlib import Path
>>> updir = Path("..")
>>> resdir = updir / "Result"
>>> resdir
WindowsPath('../Result')
>>> str(resdir)
'..\\Result'

在 Linux、Mac、BSD 和其他 *nix 上:

>>> from pathlib import Path
>>> updir = Path("..")
>>> resdir = updir / "Result"
>>> resdir
PosixPath('../Result')
>>> str(resdir)
'../Result'

几乎所有 stdlib 模块和函数都按原样接受 Path,无需 str() 它。示例:

from pathlib import Path
resdir = Path("../Result")
filepath = resdir / "somefilename.txt"
assert isinstance(filepath, Path)
with open(filepath, "rt") as fin:
for ln in fin:
# do things

前提是有一个文件 ..\Result\somefilename.txt(在 Windows 中)或 ../Result/somefilename.txt(在 Linux/Mac/BSD 中) ,代码将完全相同。


编辑:对于您的特定代码:

from pathlib import Path

...

# Assuming `Path_Definition` is not a Path object
Path_Results = Path(Path_Definition) / 'Results'

关于python - '/' or '\' 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65002191/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com