鱼C论坛

 找回密码
 立即注册
查看: 1137|回复: 5

[已解决]每日一问之OS模块

[复制链接]
发表于 2019-3-21 14:24:56 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 涂山苏苏 于 2019-3-21 14:43 编辑
  1. import os
  2. path = "E:\\测试"
  3. if not os.path.isdir(path):
  4.      os.mkdir(path)
复制代码

上面这段代码在文件夹已存在时运行无异常不报错
  1. import os
  2. path = "E:\\测试"
  3. if path not in os.listdir():
  4.     os.mkdir(path)
复制代码

上面这段代码在没有文件夹时运行无异常不报错
但是在文件夹已存在时二次创建会报如下错误
问题如下:
1)发生这种情况的具体原因是什么?
2)这两种方法具体使用有什么区别?
3)创建文件夹还有什么更好的方法吗?
谢谢解答!!!
  1. Traceback (most recent call last):
  2.   File "E:/练习/黑马.py", line 6, in <module>
  3.     os.mkdir(path)
  4. FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'E:\\测试'
复制代码

最佳答案
2019-3-21 14:48:18
涂山苏苏 发表于 2019-3-21 14:45
谢谢提醒,已更改错误。
os.path.isdir(path):
os.listdir():

一个是判断路径是不是文件夹,
一个是将当期路径的文件及文件夹生成一个列表,
这个小甲鱼的课程里都有讲过,我觉得你百度也能看的比较明白
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-3-21 14:36:32 From FishC Mobile | 显示全部楼层
手动创建也不能有同名的文件夹啊,可以
try:
    mkdir
except fileexist:
    pass
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-21 14:37:17 | 显示全部楼层
第一个会报错,第二个不会报错,你说反了
因为第二个判断你的路径不是文件夹才创建
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-21 14:45:57 | 显示全部楼层
塔利班 发表于 2019-3-21 14:37
第一个会报错,第二个不会报错,你说反了
因为第二个判断你的路径不是文件夹才创建

谢谢提醒,已更改错误。
os.path.isdir(path):
os.listdir():
请问这两者区别在什么地方?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-21 14:48:18 | 显示全部楼层    本楼为最佳答案   
涂山苏苏 发表于 2019-3-21 14:45
谢谢提醒,已更改错误。
os.path.isdir(path):
os.listdir():

一个是判断路径是不是文件夹,
一个是将当期路径的文件及文件夹生成一个列表,
这个小甲鱼的课程里都有讲过,我觉得你百度也能看的比较明白
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-21 14:54:45 | 显示全部楼层
塔利班 发表于 2019-3-21 14:48
一个是判断路径是不是文件夹,
一个是将当期路径的文件及文件夹生成一个列表,
这个小甲鱼的课程里都有 ...

好的,谢谢解答。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-21 03:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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