5

我有两个字符串:

C:\Data

和另一个文件夹

Foo1

我需要,windows输出是

C:\Data\Foo1

和Linux输出是

/data/foo1

假设 /data 在 linux 中。是否有任何可以在 Python 中使用的常量分隔符,无论底层操作系统如何都可以轻松使用?

4

3 回答 3

16

是的,python 提供了os.sep,这就是那个字符,但是出于您的目的,该函数os.path.join()就是您要寻找的。

>>> os.path.join("data", "foo1")
"data/foo1"
于 2012-11-12T02:12:55.907 回答
4

os.path.normpath()将为 Linux 和 Windows 正确规范化路径。仅供参考,Windows 操作系统调用可以使用任一斜线,但应标准化显示给用户。

于 2012-11-12T02:20:18.067 回答
1

os.path.join()总是更好。正如 Mark Tolonen 所写(我对他的 +1),您也可以在 Windows 上使用普通斜杠,如果您必须明确编写路径,您应该更喜欢这种方式。您应该完全避免在 Python 中使用反斜杠作为路径。或者你必须将它们加倍在字符串中,或​​者你必须使用r'raw strings'来抑制反斜杠解释。否则,'c:\for\a_path\like\this'实际上包含您在撰写本文时可能没有注意到的 、 和转义序列……它们可能会成为将来令人头疼的\f根源\a\t

于 2012-11-12T09:17:32.037 回答