python如何判断文件是否存在

通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。

python中如何判断文件是否存在?

判断文件是否存在可使用os模块, 使用Try语句, 使用pathlib模块。

这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块、Try语句、pathlib模块。

1.使用os模块

os模块中的os.path.exists()方法用于检验文件是否存在。

判断文件是否存在

import os

os.path.exists(test_file.txt)

#True

os.path.exists(no_exist_file.txt)

#False

或者

import os

os.path.exists(test_dir)

#True

os.path.exists(no_exist_dir)

#False

可以看出用os.path.exists()方法,判断文件和文件夹是一样。

其实这种方法还是有个问题,假设你想检查文件“test_data”是否存在,但是当前路径下有个叫“test_data”的文件夹,这样就可能出现误判。为了避免这样的情况,可以这样:

只检查文件

import os

os.path.isfile("test-data")

通过这个方法,如果文件”test-data”不存在将返回False,反之返回True。

即是文件存在,你可能还需要判断文件是否可进行读写操作。

判断文件是否可做读写操作

使用os.access()方法判断文件是否可进行读写操作。

语法:

os.access(path, mode)

path为文件路径,mode为操作模式,有这么几种:

os.F_OK: 检查文件是否存在;

os.R_OK: 检查文件是否可读;

os.W_OK: 检查文件是否可以写入;

os.X_OK: 检查文件是否可以执行

该方法通过判断文件路径是否存在和各种访问模式的权限返回True或者False。

import os

if os.access("/file/path/foo.txt", os.F_OK):

print "Given file path is exist."

if os.access("/file/path/foo.txt", os.R_OK):

print "File is accessible to read"

if os.access("/file/path/foo.txt", os.W_OK):

print "File is accessible to write"

if os.access("/file/path/foo.txt", os.X_OK):

print "File is accessible to execute"

2.使用Try语句

可以在程序中直接使用open()方法来检查文件是否存在和可读写。

语法

open()

如果你open的文件不存在,程序会抛出错误,使用try语句来捕获这个错误。

程序无法访问文件,可能有很多原因:

如果你open的文件不存在,将抛出一个FileNotFoundError的异常;

文件存在,但是没有权限访问,会抛出一个PersmissionError的异常。

所以可以使用下面的代码来判断文件是否存在:

try:

f =open()

f.close()

except FileNotFoundError:

print "File is not found."

except PersmissionError:

print "You don't have permission to access this file."

3.使用pathlib模块

pathlib模块在Python3版本中是内建模块,但是在Python2中是需要单独安装三方模块。

使用pathlib需要先使用文件路径来创建path对象。此路径可以是文件名或目录路径。

检查路径是否存在

path = pathlib.Path("path/file")

path.exist()

检查路径是否是文件

path = pathlib.Path("path/file")

path.is_file()

以上就是python如何判断文件是否存在的详细内容,更多请关注码农之家其它相关文章!

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

python怎么判断一个文件是否存在-python判断文件是否存在的方法相关推荐

  1. python怎么判断一个文件是否存在-python怎么判断一个目录下是否存在某个文件??谢啦!...

    12.2 C语言对文件操作的支持 12.2.1 文件的打开 FILE *fopen( "路径+文件名","读写模式"); FILE *fopen(const c ...

  2. 【Python】判断一个整数是否是回文数的三种方法

    方法一:逐位判断 原理: 用一个while循环,将一个数每次都取出首位和末位,判断是否相等,只要有一次不相等退出即可. 回文数的判断条件:加入一个变量位数,如果这个数是奇数,位数为1时,即最中间那一位 ...

  3. 13位Python大牛历时一个月打造的Python系统学习流程图,超详细!

    对于刚开始接触Python的小伙伴来说,没有思路方法,不知道从何开始学习,把软件环境安装好后就不知所措了!接下来我给大家分享下多位大牛倾力打造的python系统学习流程,一个月才设计完的! #Pyth ...

  4. python jit_Pyston是一个基于JIT的Python开源实现

    Dropbox宣布一个Python开源项目Pyston,这是为了大幅度提高Python性能,类似javascript的Chrome的V8. 之前已经有一些JIT技术, PyPy通过其tracing J ...

  5. python如何创建一个列表_在python中创建列表的最佳和/或最快方法

    在python中,据我所知,至少有3到4种方法来创建和初始化给定大小的列表: 简单循环append: my_list =[]fori inrange(50):my_list.append(0) 简单循 ...

  6. 树莓派 python 无人机_DIY一个基于树莓派和Python的无人机视觉跟踪系统

    DIY一个基于树莓派和Python的无人机视觉跟踪系统 无人机通过图传将航拍到的图像存储并实时传送回地面站几乎已经是标配.如果想来点高级的--在无人机上直接处理拍摄的图像并实现自动控制要怎么实现呢?其 ...

  7. python安卓开发-一个Android开发者自学Python的心路历程

    前言 本人主要从事Android开发,也做过微信小程序,有时还会在Java那边客串一把(谁让Android是用的Java呢@~@),最近在自学Python,已有半月有余.因近年来,技术迭代快速,前端更 ...

  8. 写一个方法判断一个字符串是否对称_判断一个男生是否好色的方法

    ▾ 我们店只招黑喵哦? ▾ 其实也不是不能理解为什么男的要跑? ▾ 有什么相见恨晚的小知识?? ▾ 见证奇迹?:是不是穿过去了!? ▾ 医学奇迹? ▾ 卧槽流劈!?真的超光速了! ▾ 细节很到位啊几位 ...

  9. python 均方误差_一个很随意的Python智能优化库,一个文件就是一个库-- PySwarm

    之前无聊做了个简单的Python智能算法库的小总结:Python智能优化算法库小汇总 .当时没注意到有一个库PySwarms是基于另外一个小库 PySwarm开发的. 这个库非常有意思,整个库只依赖N ...

  10. 用python做算法初步流程图_13位Python大牛历时一个月打造的Python系统学习流程图,超详细!...

    对于刚开始接触Python的小伙伴来说,没有思路方法,不知道从何开始学习,把软件环境安装好后就不知所措了!接下来我给大家分享下多位大牛倾力打造的python系统学习流程,一个月才设计完的! 需要pyt ...

最新文章

  1. ORA-06502 when awr report produce
  2. C# 回发或回调参数无效
  3. hdu_5701_中位数计数
  4. 10种轻量级人脸检测算法大PK
  5. 如何使Mac Docker支持SQL on Linux容器Volume特性
  6. 数据库面试题目经典大全
  7. Linux学习之exit函数
  8. android 安装第三方app,Android识别预装的第三方App方法实例
  9. Dictionary加速查询(TryGetValue)
  10. python获取未读邮箱数目_python imaplib 获取未读邮件,email解析并按照原名下载附件...
  11. 算法求解方法与思路的总结
  12. hashmap value占用空间大小_性能优化:为什么要使用SparseArray和ArrayMap替代HashMap?...
  13. Linux 服务器安全加固方案
  14. 计算机无法映射网络驱动器,win7系统无法映射网络驱动器的解决方法
  15. leaflet地图原理_Leaflet地图框架使用手册
  16. 利用不共线三点求解并联机构动系在定系中的位姿的另一种解法
  17. 电脑重装系统后谷歌浏览器连不上网的解决方案
  18. 麒麟案例 | 南浔电商领头羊+麒麟计划,碰撞出了企业下一个10年增长之路!
  19. 苹果笔记本摄像头黑屏怎么回事
  20. Istio进入1.7版本,Service Mesh 落地还有什么障碍?

热门文章

  1. INPUT type=password 元素 | input type=password 对象
  2. json_encode 中文乱码
  3. MySQL 服务端调优
  4. [HDOJ4006]The kth great number
  5. Android_NDK问题:APP_BUILD_SCRIPT points to an unknown file: project_path/jni/Android.mk
  6. 【php】php5.0以上,instanceof 用法
  7. python里的类与一切事物都是对象
  8. 数据解析框架之Gson
  9. 新手站长们如何利用10分钟的时间内多写高质量的原创量?
  10. Centos6.3下rsync+sersync安装配置笔记