我喜欢Python,因为它包括电池,我使用内置功能,为我做脏事.
我一直在愉快地使用os.path模块来处理文件路径,但最近我在Ubuntu linux下的Python 2.5上得到了意想不到的结果,同时处理代表Windows文件路径的字符串:
filepath = r"c:\ttemp\FILEPA~1.EXE" print os.path.basename(filepath) 'c:\\ttemp\\FILEPA~1.EXE'] print os.path.splitdrive(filepath) ('', 'c:\ttemp\\FILEPA~1.EXE')
WTF?
它以与filepath = u"c:\ ttemp\FILEPA~1.EXE"和filepath ="c:\ ttemp\FILEPA~1.EXE"相同的方式结束.
你有线索吗?Ubuntu使用UTF8,但我不觉得它与它有关.也许我的Python安装搞砸了,但我没有对它进行任何特别的调整,我记得.
如果你想在linux上操作Windows路径,你应该使用ntpath模块(这是在windows上作为os.path导入的模块 - posixpath在linux上作为os.path导入)
>>> import ntpath >>> filepath = r"c:\ttemp\FILEPA~1.EXE" >>> print ntpath.basename(filepath) FILEPA~1.EXE >>> print ntpath.splitdrive(filepath) ('c:', '\\ttemp\\FILEPA~1.EXE')