为了答谢广大中国程序员对本人的厚爱,本文使用中文撰写,谢谢。我不叫周立波,我只认识张立波。

主要的区别在于,当输入是根目录时,Path.GetDirectoryName 会返回 null,而 Python 的 os.path.split 会返回一个元组(蛋糕),内容是 (根目录 空串)。当我静下心来仔细想到底哪个更正确时,发现各有各的道理:.NET 的 Path.GetDirectoryName 的意思是:我死命地要返回你所给我的路径的上层目录;如果已经是根目录了,那么没办法,返回 null 吧。而 os.path.split 的意思是:我要把路径分割成目录和文件名两部分。既然左边的必须是目录,那么遇到像 C:\ 这样的根目录,我总不能直接扔掉吧,但也不能当作文件名放在返回的那个元组的右边吧。于是,还是原封不动地放在返回值的左边算了。