问题

如何判断一个文件是否存在

解决方案

这个问题可以分成几类问题

如果这里的文件指的是文件或目录,我们可以用os.path.exists()方法

>>> import os
>>> os.path.exists('test')
True

如果这里的文件指的是普通的文件,我们可以用os.path.isfile()方法

>>> import os
>>> os.path.isfile('test.txt')
True
>>> os.path.exists('test.txt')
False

如果这里的文件指的是目录,我们可以用os.path.isdir()方法

>>> import os
>>> os.path.isfile('test')
False
>>> os.path.isdir('test')
True

并且在Python 3.4之后,可以使用面向对象的方法(使用pathlib库)来判断,方法名和上面是一样的,举个例子

>>> from pathlib import Path
>>> with Path('test') as p:
...     print(p.exists())
...
True

讨论

需要注意的是,不管是os.path还是pathlib的方法,isfileisdir都是跟随符号链接(软链接)的,所以对于同一个路径,可能会出现os.path.isfileos.path.islink返回都是True

os.path还包含与文件相关的很多实用方法,详细见:https://docs.python.org/3/lib...

来源

Python Cookbook

关注

欢迎关注我的微信公众号:python每日一练

Python每日一练0023相关推荐

  1. Python每日一练0004

    问题 如何保存迭代对象的最后N个元素 例如保存列表['a', 'b', 'c', 'd']的最后2个元素 或者保存某个迭代器对象的最后5个元素 解决方案 对于列表.元组这样的数据结构,可以使用切片来很 ...

  2. python 编程一日一练-python每日一练

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 过滤掉列表中的负数 筛选出字典{lilei: 79,jim: 88,lu ...

  3. python 编程一日一练-Python每日一练0022

    问题 你想在一个文件里每次读入固定大小的字节,比如每次读入4个字节并转成int,或者每次读入x个字节并进行结构化,例如: l = [5, 2, 4, 1, 2, 4, 5, 6, 8] with op ...

  4. python 编程一日一练-Python每日一练0013

    问题 现在有多个字典或者映射,你想将它们从逻辑上合并为一个单一的映射后执行某些操作, 比如查找值或者检查某些键是否存在. 解决方案 使用collections库的ChainMap类,可以快速的将多个d ...

  5. Python每日一练0018

    问题 你需要对浮点数执行精确的计算操作,并且不希望有任何小误差的出现. Python的float类型是存在误差的 >>> a = 1.1 >>> b = 2.2 & ...

  6. python每日一练名片管理程序_Python每日一练0022

    问题 你想在一个文件里每次读入固定大小的字节,比如每次读入4个字节并转成int,或者每次读入x个字节并进行结构化,例如: l = [5, 2, 4, 1, 2, 4, 5, 6, 8] with op ...

  7. Python每日一练第5天——将一组数尽可能均匀地分成两堆,使两个堆中的数的和尽可能相等

    每日一练-做题 麦克叔叔去世了,他在遗嘱中给他的两个孙子阿贝和鲍勃留下了一堆珍贵的口袋妖怪卡片.遗嘱中唯一的方向是"尽可能均匀地分配纸牌的价值".作为Mike遗嘱的执行人,你已经为 ...

  8. Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词

    #coding:utf-8 import os,repath = 'test' files = os.listdir(path)def count_word(words):dic = {}max = ...

  9. python 编程一日一练-2018-12-01:python每日一练(1)

    (https://docs.python.org/3/library/functions.html#print "Permalink to this definition") 题目 ...

最新文章

  1. bootstap 表格自动换行 截取超长数据
  2. Linux新建用户名
  3. Ubuntu 安装docker-engine的三种方法
  4. 【转】asp.net mvc生成验证码
  5. sparkstreaming(2)——updatestatebykey
  6. ticket进行urlencode是什么意思_request请求中进行url转码,结果意想不到,python爬虫(2)...
  7. python3汉字转unicode_Python3 编码问题: 怎么将Unicode转中文,以及GBK乱码ÖйúÉÙÊýÃñ×åÌØÉ«´åÕ¯...
  8. [转]java String的经典问题(new String(), String)
  9. iOS学习笔记26-视频播放
  10. nginx upstream配置_效率倍增!网易杭研Nginx自动扩缩容实践
  11. java分布式框架_5个强大的Java分布式缓存框架推荐
  12. IPCAS1.2.11安装步骤
  13. 淘宝自动下单软件//下单神器、、
  14. linux文件名排序规则,Linux 上readdir 遍历文件夹按文件名排序
  15. css保持长宽比拉伸,使用CSS保持div的长宽比
  16. 使用windows命令行 启动WeGame
  17. 电池战争:“新石油”与中欧分野
  18. SM2 加解密注意事项
  19. Win10 插入前置耳机没有声音问题
  20. pythonurllib爬虫教学_Python学习教程:这里是Python爬虫的起点,抢占资源啦

热门文章

  1. 2016.04.09 使用Powerdesigner进行创建数据库的概念模型并转为物理模型
  2. BZOJ 1176: [Balkan2007]Mokia( CDQ分治 + 树状数组 )
  3. 【转载】图像缩放与插值理论基础
  4. 开源图形库 FreeImage
  5. html内通过parentNode来得到上级对象,与此对应的,还有childNodes[x]得到下级对象...
  6. Nginx proxy_cache 使用示例
  7. App_Offline.htm 一个静态页面实现整站维护时统一页面
  8. asp.net 2.0中一次性更新所有GRIDVIEW的记录
  9. 吴恩达老师深度学习视频课笔记:优化算法
  10. linux内核异常分析ecp,内核基于嵌入式Linux的PocketIX系统