Python,在目录字符串中添加尾部斜线,独立于操作系统


114

如果尾部斜杠尚不存在,如何在目录字符串中添加尾部斜杠(/对于* nix,\对于win32)?谢谢!


8
您应该使用os.path模块(docs.python.org/library/os.path.html)而不是直接操作字符串。使用os.path.join来连接路径组件。
kennytm'4

2
感谢Tim的提醒,在阅读文档后,我认为我真正的问题的答案是os.path.join(folder,filename),而我完全不必担心斜杠。男人,我要去爱python ;-)
哦,2010年

2
这就是为什么我问-不要自己做,使用os.path.join并让标准库找出正确的路径分隔符。
蒂姆·皮茨克

2
@ S.Lott我不会认为这个“不好”。这个问题本身就是一个有效的问题。它只是一个更大的问题(可能是真实的)的一部分。
哦,2010年

6
但是,取决于您在做什么,这个问题可能仍然很有趣。例如,如果您使用Python向另一个程序提供输入,则可能会遇到参数需要以斜杠结尾的路径的情况。那可能是您无法控制的。并且对于以下Marco的回答是一个非常有效的用例。
克里斯·克里乔

Answers:


180

os.path.join(path, '') 如果末尾不存在斜线,则会添加该斜线。

你可以做os.path.join(path, '', '')os.path.join(path_with_a_trailing_slash, '')你仍然只会得到一个尾部的斜杠。


2
path碰巧是文件而不是目录时,也会添加斜杠。有点不方便。
马丁

27

由于要连接目录和文件名,请使用

os.path.join(directory, filename)

如果要摆脱.\..\..\blah\路径,请使用

os.path.join(os.path.normpath(directory), filename)


-1

您可以使用如下形式:

os.path.normcase(path)
    Normalize the case of a pathname. On Unix and Mac OS X, this returns the path unchanged; on case-insensitive filesystems, it converts the path to lowercase. On Windows, it also converts forward slashes to backward slashes.

否则,您可以在页面上寻找其他内容

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.