马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 hhzczy 于 2018-11-3 20:08 编辑
@小甲鱼
《零基础入门学习Python》P89页,关于os.path的表格中有一处表述不严谨。
“……如果完全使用目录,它也会将最后一个目录作为文件名分离……”
我在做笔记的时候尝试了以下几种情况:>>> import os
>>> os.path.split('C:\\Program Files (x86)\\Anki\\Anki.exe') # 文件
('C:\\Program Files (x86)\\Anki', 'Anki.exe')
>>>
>>> os.path.split('C:\\Program Files (x86)\\Anki\\') # 文件夹。尾有斜杠
('C:\\Program Files (x86)\\Anki', '')
>>>
>>> os.path.split('C:\\Program Files (x86)\\Anki') # 文件夹。尾无斜杠
('C:\\Program Files (x86)', 'Anki')
在我看来,其实如果结尾不加反斜杠表示的是一个没有后缀名的文件(我是这样理解的,而且这样想的话,遇到的问题都能解释得通)。
还是按照文件名(也许没有后缀名)和路径分割的,这个原则并未出现特殊。所以“……如果完全使用目录,它也会将最后一个目录作为文件名分离……”这句话应该删掉。
再比如:>>> import os
>>> os.path.dirname('H:\\I\\J\\K\\sample.txt')
'H:\\I\\J\\K'
>>> os.path.dirname('H:\\I\\J\\K\\Sample_folder')
'H:\\I\\J\\K'
>>> os.path.dirname('H:\\I\\J\\K\\Sample_folder\\')
'H:\\I\\J\\K\\Sample_folder'
>>> import os
>>> os.path.splitext('C:\\Program Files (x86)\\Anki\\Anki.exe')
('C:\\Program Files (x86)\\Anki\\Anki', '.exe')
>>> os.path.splitext('C:\\Program Files (x86)\\Anki\\)
SyntaxError: EOL while scanning string literal
>>> os.path.splitext('C:\\Program Files (x86)\\Anki')
('C:\\Program Files (x86)\\Anki', '')
|