鱼C论坛

 找回密码
 立即注册
查看: 2114|回复: 1

我又来领奖了~~~~

[复制链接]
发表于 2018-11-3 18:11:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 hhzczy 于 2018-11-3 20:08 编辑

@小甲鱼

《零基础入门学习Python》P89页,关于os.path的表格中有一处表述不严谨。
“……如果完全使用目录,它也会将最后一个目录作为文件名分离……”
我在做笔记的时候尝试了以下几种情况:
  1. >>> import os
  2. >>> os.path.split('C:\\Program Files (x86)\\Anki\\Anki.exe')    # 文件
  3. ('C:\\Program Files (x86)\\Anki', 'Anki.exe')
  4. >>>
  5. >>> os.path.split('C:\\Program Files (x86)\\Anki\\')    # 文件夹。尾有斜杠
  6. ('C:\\Program Files (x86)\\Anki', '')
  7. >>>
  8. >>> os.path.split('C:\\Program Files (x86)\\Anki')    # 文件夹。尾无斜杠
  9. ('C:\\Program Files (x86)', 'Anki')
复制代码

在我看来,其实如果结尾不加反斜杠表示的是一个没有后缀名的文件(我是这样理解的,而且这样想的话,遇到的问题都能解释得通)。
还是按照文件名(也许没有后缀名)和路径分割的,这个原则并未出现特殊。所以“……如果完全使用目录,它也会将最后一个目录作为文件名分离……”这句话应该删掉。
再比如:
  1. >>> import os
  2. >>> os.path.dirname('H:\\I\\J\\K\\sample.txt')
  3. 'H:\\I\\J\\K'
  4. >>> os.path.dirname('H:\\I\\J\\K\\Sample_folder')
  5. 'H:\\I\\J\\K'
  6. >>> os.path.dirname('H:\\I\\J\\K\\Sample_folder\\')
  7. 'H:\\I\\J\\K\\Sample_folder'
复制代码
  1. >>> import os
  2. >>> os.path.splitext('C:\\Program Files (x86)\\Anki\\Anki.exe')
  3. ('C:\\Program Files (x86)\\Anki\\Anki', '.exe')
  4. >>> os.path.splitext('C:\\Program Files (x86)\\Anki\\)                     
  5. SyntaxError: EOL while scanning string literal
  6. >>> os.path.splitext('C:\\Program Files (x86)\\Anki')                     
  7. ('C:\\Program Files (x86)\\Anki', '')
复制代码

评分

参与人数 1荣誉 +1 收起 理由
TCY + 1 感谢楼主无私奉献!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-11-3 19:46:10 | 显示全部楼层
本帖最后由 hhzczy 于 2018-11-3 20:00 编辑

以上只是我自己的理解,随着学习后边几个函数,我发现我的理解也有问题:
  1. >>> import os
  2. >>> os.path.isfile('C:\\Program Files (x86)\\Anki\\Anki.exe')
  3. True
  4. >>> os.path.isfile('C:\\Program Files (x86)\\Anki')
  5. False
  6. >>> os.path.isfile('C:\\Program Files (x86)\\Anki\\')
  7. False
复制代码

  1. >>> import os
  2. >>> os.path.isdir('C:\\Program Files (x86)\\Anki\\Anki.exe')
  3. False
  4. >>> os.path.isdir('C:\\Program Files (x86)\\Anki\\')
  5. True
  6. >>> os.path.isdir('C:\\Program Files (x86)\\Anki')
  7. True
复制代码


如果我在文件夹里建立了文件,并把后缀名删掉,难道就不是文件了吗?能变成路径吗?
文件还是那个文件…路径还是那个路径…
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-22 22:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表