I have two strings:
C:\Data
还有一个文件夹
Foo1
我需要将Windows的输出设置为:
C:\Data\Foo1
并且Linux输出应该是
/data/foo1
假设 /data 在 Linux 中。在 Python 中是否有任何常量分隔符可用,使其易于使用,而不受底层操作系统的影响?
I have two strings:
C:\Data
还有一个文件夹
Foo1
C:\Data\Foo1
并且Linux输出应该是
/data/foo1
是的,Python提供了os.sep
这个字符,但对于您的目的,您需要使用os.path.join()
函数。
>>> os.path.join("data", "foo1")
"data/foo1"
os.path.normpath()函数可以正确地对Linux和Windows的路径进行标准化处理。须知,Windows操作系统可使用任何一种斜线符号,但应显示给用户进行标准化处理。
os.path.join()
总是更好。正如 Mark Tolonen 所写(我赞同他的观点),你可以在 Windows 上使用普通斜杠,如果必须显式地编写路径,则应该优先选择这种方式。在 Python 中,应避免使用反斜杠来表示路径。否则,你将不得不在字符串中将它们加倍,或者你将不得不使用 r'raw strings'
来抑制反斜杠的解释。否则,'c:\for\a_path\like\this'
实际上包含了你在编写时可能没有注意到的 \f
、\a
和 \t
转义序列,这些可能会在未来带来麻烦。