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

这里将介绍三种判断文件或文件夹是否存在的方法,分别使用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."

其实没有必要去这么细致的处理每个异常,上面的这两个异常都是IOError的子类。所以可以将程序简化一下:try:

f =open()

f.close()

except IOError:

print "File is not accessible."

使用try语句进行判断,处理所有异常非常简单和优雅的。而且相比其他不需要引入其他外部模块。

3. 使用pathlib模块

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

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

检查路径是否存在path = pathlib.Path("path/file")

path.exist()

检查路径是否是文件path = pathlib.Path("path/file")

path.is_file()

以上就是利用Python如何判断一个文件是否存在的详细内容,更多请关注php中文网其它相关文章!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

python怎么判断一个文件是否存在-利用Python如何判断一个文件是否存在相关推荐

  1. python把汉字变成拼音英文_利用python将表格中的汉字转化为拼音

    GB18030的字符集标准 http://zbgb5.com/2/StandardDetail479488.htm 缺少包时用pip install 进行安装,例如: pip install xlsx ...

  2. 【适合Python语言小白的股价图】利用Python中的matplotlib绘制股价图(非k线图)

    [适合Python语言小白的股价图]利用Python中的matplotlib绘制股价图(非k线图) 代码小白,最近做一家公司的股价复盘用到了matplotlib,在此做个小小的记录.代码的逻辑比较笨, ...

  3. c语言创建excel文件6,怎么利用c语言创建excel文件

    怎么利用c语言创建excel文件 想要利用c语言创建excel文件再把它导入excel其实很简单,如果数据简单的话,可以使用CSV(逗号分隔值)格式的文件.CSV格式的文件可以用OfficeExcel ...

  4. 利用python进行数据分析第三版 mobi_利用python进行数据分析 pdf下载

    利用Python进行数据分析pdf电子版是一本广受好评的Python实战指导参考图书,该书以大量案例分析为基本,全面系统地教你如何解决各类数据分析问题,有兴趣的朋友快来下载吧! 利用Python进行数 ...

  5. python如何创建一个文件夹_利用Python怎么创建一个文件夹

    利用Python怎么创建一个文件夹 发布时间:2020-12-08 14:48:04 来源:亿速云 阅读:91 作者:Leah 这期内容当中小编将会给大家带来有关利用Python怎么创建一个文件夹,文 ...

  6. python推箱子小游戏_小伙利用Python自制一个推箱子小游戏!

    原标题:小伙利用Python自制一个推箱子小游戏! 导语 月初更波python制作小游戏系列吧用python写了个推箱子小游戏,在这里分享给大家,让我们愉快地开始吧 小伙利用Python自制一个推箱子 ...

  7. python用一行代码编写一个回声程序_利用Python实现一个WC程序

    项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数.单词数和行数 ...

  8. python读取pdf文档书签 bookmark_Python利用PyPDF2库获取PDF文件总页码实例

    Python中可以利用PyPDF2库来获取该pdf文件的总页码,可以根据下面的方法一步步进行下去: 1.首先,要安装PyPDF2库,利用以下命令即可: pip install PyPDF2 2.接着, ...

  9. python 16bit转8bit的工具_利用python读取YUV文件 转RGB 8bit/10bit通用

    注:本文所指的YUV均为YUV420中的I420格式(最常见的一种),其他格式不能用以下的代码. 位深为8bit时,每个像素占用1字节,对应文件指针的fp.read(1): 位深为10bit时,每个像 ...

最新文章

  1. adc参考电压是直流交流_无位置传感器无刷直流电机换相误差校正的新方法
  2. 攻防世界php2_攻防世界-web2
  3. MySQL数据同步,出现Slave_SQL_Running:no和slave_io_running:no问题的解决方法
  4. Django 模型字段 —— ImageField
  5. python三酷猫_洛克王国三代酷猫登场 冰水酷猫解析
  6. python第一周心得_python第一周心得-Go语言中文社区
  7. Python format 函数- Python零基础入门教程
  8. python面向对象怎么解决_Python面向对象编程1
  9. 原反补移码的概念应用以及异或的作用
  10. java服务器修改缓存数据,java监控服务器数据存入缓存
  11. datetimepicker 默认时间_Django项目中如何使用日期时间选择器DateTimePicker
  12. HTTPS协议的简述
  13. 「代码随想录」63. 不同路径 II【动态规划】力扣详解!
  14. C++相对于C语言更加规范(1)
  15. 复习HTTP状态码+301和302
  16. 腾讯微博-转播到微博的简单使用
  17. 后台管理系统 – 权限管理
  18. 服务器安全狗的日志在哪儿 文件位置,服务器安全狗 防护日志功能介绍
  19. java 微博发布时间_java 对新浪微博微博的发表时间解析
  20. STK星座模拟及主要城市覆盖性、GDOP值分析

热门文章

  1. Odoo 8 Graph 视图 之 雷达图 (Radar\Spider)
  2. 盛大 Everbox同步网盘,可以本地和云服务文件同步,还不错,推荐下面的注册地址...
  3. Centos7 fstab盘符挂载硬盘导致重启系统失败解决办法
  4. [无排版]redis基本数据结构的应用
  5. 机器学习经典分类算法 —— C4.5算法(附python实现代码)
  6. 算法学习--Day3
  7. mac下安装nginx
  8. 模块讲解----time与date time(时间模块)
  9. 快速组建的开发团队要怎么活下来?
  10. python一点基础都没有的怎么办-Python基础知识细节点总结,零基础一分钟也能掌握...