我有两个字符串:
C:\Data
和另一个文件夹
Foo1
我需要,windows输出是
C:\Data\Foo1
和Linux输出是
/data/foo1
假设 /data 在 linux 中。是否有任何可以在 Python 中使用的常量分隔符,无论底层操作系统如何都可以轻松使用?
我有两个字符串:
C:\Data
和另一个文件夹
Foo1
我需要,windows输出是
C:\Data\Foo1
和Linux输出是
/data/foo1
假设 /data 在 linux 中。是否有任何可以在 Python 中使用的常量分隔符,无论底层操作系统如何都可以轻松使用?
是的,python 提供了os.sep
,这就是那个字符,但是出于您的目的,该函数os.path.join()
就是您要寻找的。
>>> os.path.join("data", "foo1")
"data/foo1"
os.path.normpath()将为 Linux 和 Windows 正确规范化路径。仅供参考,Windows 操作系统调用可以使用任一斜线,但应标准化显示给用户。
os.path.join()
总是更好。正如 Mark Tolonen 所写(我对他的 +1),您也可以在 Windows 上使用普通斜杠,如果您必须明确编写路径,您应该更喜欢这种方式。您应该完全避免在 Python 中使用反斜杠作为路径。或者你必须将它们加倍在字符串中,或者你必须使用r'raw strings'
来抑制反斜杠解释。否则,'c:\for\a_path\like\this'
实际上包含您在撰写本文时可能没有注意到的 、 和转义序列……它们可能会成为将来令人头疼的\f
根源\a
。\t