Python中正确使用os.path.join()的方法

8
我发现了这个Python函数os.path.join()。我想知道如何更好地使用它。
os.path.join(r'C:\\' , r'some_dir_in_C_folder') 

或者
print os.path.join("C:\\" , "some_dir_in_C_folder\\")

TIA


4
这两个代码片段之间有多处不同,但不清楚哪一处对你来说更重要。是print语句?还是原始字符串?还是路径末尾的反斜杠? - user2357112
我想在需要的时候最终沿着这个保存的路径走一遍。当我说“保存”时,我的意思是将其存储在一个变量中。 - Tuffy
顶部的那个是正确的... os.path.join 的重点在于你不需要担心分隔符... 因此,大多数情况下使用它都会失去意义... os.path.join 只是一个方便的包装器,用于 os.path.sep.join(["PATH","DIR1","DIR2",...]) - Joran Beasley
1个回答

12

两种用法都是不正确的,正确的用法是(例如:c:/programs/myfiles/cat.txt):

>>> import os
>>> os.path.join('C:/' , 'programs','myfiles','cat.txt') 
'C:/programs/myfiles/cat.txt'

OP的第二个版本有一定正确性。你的版本是错误的,而且没有给出你为我发布的结果。我猜想你没有在Windows上运行它。 - interjay
@interjay,正如joran beasley所说,“os.path.join的重点在于您无需担心分隔符。” - suhailvs
如果你运行了这个程序,那么它不是在Windows上运行的。在Windows上,你的版本会给出一个相对路径到C盘上的当前目录,这是不正确的。 - interjay
这是我在Windows中得到的结果:'C:/programs\myfiles\cat.txt'。 - Tuffy
1
@BrownieTuffy 嗯...所以你需要使用c:\\\而不是c:/。我正在使用Linux,强烈建议使用/而不是使用\\,你也可以使用一些相对路径。 - suhailvs
显示剩余2条评论

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