当前位置:  开发笔记 > 编程语言 > 正文

Os.path:你能解释一下这种行为吗?

如何解决《Os.path:你能解释一下这种行为吗?》经验,为你挑选了1个好方法。

我喜欢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安装搞砸了,但我没有对它进行任何特别的调整,我记得.



1> Moe..:

如果你想在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')


这是一个很好的答案,值得被接受,恕我直言.使用现成的工具比制作自己的正则表达式要好得多.
推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有