Python 3中的路径分隔符

6

I have two strings:

C:\Data

还有一个文件夹

Foo1

我需要将Windows的输出设置为:
C:\Data\Foo1

并且Linux输出应该是

/data/foo1

假设 /data 在 Linux 中。在 Python 中是否有任何常量分隔符可用,使其易于使用,而不受底层操作系统的影响?
3个回答

19

是的,Python提供了os.sep这个字符,但对于您的目的,您需要使用os.path.join() 函数。

>>> os.path.join("data", "foo1")
"data/foo1"

我得到了一个错误:TypeError: join()缺少1个必需的位置参数:“a” - Romaan
1
@Romaan 请回去阅读文档,然后尝试使用这个函数。 - Gareth Latty

4

os.path.normpath()函数可以正确地对Linux和Windows的路径进行标准化处理。须知,Windows操作系统可使用任何一种斜线符号,但应显示给用户进行标准化处理。


1

os.path.join() 总是更好。正如 Mark Tolonen 所写(我赞同他的观点),你可以在 Windows 上使用普通斜杠,如果必须显式地编写路径,则应该优先选择这种方式。在 Python 中,应避免使用反斜杠来表示路径。否则,你将不得不在字符串中将它们加倍,或者你将不得不使用 r'raw strings' 来抑制反斜杠的解释。否则,'c:\for\a_path\like\this' 实际上包含了你在编写时可能没有注意到的 \f\a\t 转义序列,这些可能会在未来带来麻烦。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接