我喜欢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')
Run Code Online (Sandbox Code Playgroud)
WTF?
它以与filepath = u"c:\ ttemp\FILEPA~1.EXE"和filepath ="c:\ ttemp\FILEPA~1.EXE"相同的方式结束.
你有线索吗?Ubuntu使用UTF8,但我不觉得它与它有关.也许我的Python安装搞砸了,但我没有对它进行任何特别的调整,我记得.
Moe*_*Moe 25
如果你想在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')
Run Code Online (Sandbox Code Playgroud)