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

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判断文件是否存在 中文_python如何判断文件是否存在相关推荐

  1. python创建文本、判断该文件共有多少行_python如何判断文件有多少行

    如何统计读取的一个txt文本的行数呢? 云海天教程网,大量的免费python教程,欢迎在线学习! 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepat ...

  2. python读取字符串指定位置字符_python读取txt文件中特定位置字符的方法

    python读取txt文件中特定位置字符的方法 如下所示: # -*- coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding(' ...

  3. python目录名称无效怎么处理_Python目录和文件处理总结详解

    1.判断目录是否存在.判断文件是否存在.创建目录.重命名目录或文件 import os #获取当前目录路径: E:\Work\Projects\python print(os.getcwd()) #判 ...

  4. python docx 合并文档 图片_Python检查Word文件中包含特定关键字的所有页码

    推荐教材:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社图书详情:配套资源:用书教师可以联系董老师获取教学大纲.课件.源码.教案.考试系 ...

  5. python中表头格式错误导入_python读csv文件时指定行为表头或无表头的方法

    pd.read_csv()方法中header参数,默认为0,标签为0(即第1行)的行为表头.若设置为-1,则无表头.示例如下: (1)不设置header参数(默认)时: df1 = pd.read_c ...

  6. python复制文件的方法是_Python中复制文件的9种方法

    Python 中有许多"开盖即食"的模块(比如 os,subprocess 和 shutil)以支持文件 I/O 操作.在这篇文章中,你将会看到一些用 Python 实现文件复制的 ...

  7. python 文件操作不被打断_python学习六文件操作和异常处理

    1.文件的定义和类型 什么是文件呢? 文件是数据的抽象和集合 文件是存储在辅助存储器上的数据序列 文件是存储的一种 文件有哪些类型呢? 本质上所有文件以二进制储存,不过又可以分为文本文件和二进制文件 ...

  8. python判断是否包含某数字_python如何判断数组里是否有某个数字

    Python 3语言开发教程.Python 3语言in操作符使用教程.Python 3语言如何判断数组内是否存在某一个元素? 工具/原料 电脑 Editplus 方法/步骤 1 在Python语言中, ...

  9. python django下载 功能如何实现_Python中django文件传输下载功能的实现

    Python中django文件传输下载功能的实现,基于Django建立的网站,如果提供文件下载功能,最简单的方式莫过于将静态文件交给Nginx等处理,但有些时候,由于网站本身逻辑,需要通过Django ...

最新文章

  1. Kaggle金牌拿Offer有多简单?
  2. pandas 2 选择数据
  3. centos7配置br0_centos7 bond 和 网桥配置
  4. 如何加入Dave英语学习小组
  5. 2016年工作中遇到的问题1-10:select-for-update锁表
  6. 原生JavaScript实现幻灯片效果
  7. java计算机毕业设计大数据在线考试系统在线阅卷系统及大数据统计分析(附源码、数据库)
  8. CS61B-JAR File
  9. 小米蓝牙键盘怎么连接_【米物蓝牙双模键盘使用总结】连接|操作|按键_摘要频道_什么值得买...
  10. 计算机桌面调音量的图标不见了,如何解决电脑音量图标不见了
  11. wincc 日报表(带注释)
  12. 简单小方法教你如何快速提高记忆力
  13. 某猫电影 css 加密解决方案
  14. DataWhale第21期组队学习自然语言处理实践(知识图谱)task4— 用户输入->知识库的查询语句
  15. 2020牛客暑期多校训练营(第一场)j-Easy Integration(思维,分数取模,沃斯利积分)
  16. 又双叒叕ctf比赛之saarland
  17. Oracle 视图(1)建立视图
  18. python爬虫分析——广州租房信息爬取并分析
  19. 验证码机制之验证码重复使用
  20. 小型太阳能电站有望进入家庭

热门文章

  1. 5 月份最热的 GitHub 项目
  2. Spring Cloud Alibaba到底坑不坑?反正是解放了部分使用的繁琐!
  3. 资深架构专家聊架构之道:规划、简化和演化(续)
  4. 58到家运维专家杨经营:业务上云后运维平台的演进之路
  5. 微信开发本地调试工具(模拟微信客户端)
  6. 【jeecg-mybatis版本】 mybatis+spring mvc 完美整合方案 查询,保存,更新,删除自动生成
  7. Hadoop--Yarn常用命令 与 生产环境核心配置参数
  8. Thinkphp5 请求报错
  9. 第三十篇:SOUI模块结构图及SOUI框架图
  10. loadrunner11完整卸载