千锋教育-做有情怀、有良心、有品质的职业教育机构

python判断文件是否存在

来源:千锋教育
发布时间:2023-11-10 15:35:49
分享

python在操作文件前,检查文件是否存在也是一个良好的编程习惯。通常来说,有三种常见方式来判断文件夹或文件是否存在,分别是os模块,try语句和pathlib模块。

os模块

os模块中的os.path.exists(path)可以检测文件或文件夹是否存在,path为文件/文件夹的名字/绝对路径。返回结果为True/False

printos.path.exists("/untitled/chapter3.py")printos.path.exists("chapter3.py")

这种用法既能检测文件也能检测文件夹,这也带来问题,假如我想找一个命名为helloworld的文件,使用exists可能命中同名的helloworld文件夹。这时使用os.path.isdir()和os.path.isfile()可以加以区分。如果进一步想判断是否可以操作文件,可以使用os.access(path,model),model为操作模式,具体如下

if__name__=='__main__':

ifos.access("/untitled/chapter3.py",os.F_OK):

print"Filepathisexist."

ifos.access("/untitled/chapter3.py",os.R_OK):

print"Fileisaccessibletoread"

ifos.access("/untitled/chapter3.py",os.W_OK):

print"Fileisaccessibletowrite"

ifos.access("/untitled/chapter3.py",os.X_OK):

print"Fileisaccessibletoexecute"

try语句

对文件最简单的操作方法是直接使用open()方法,但是文件不存在,或发生权限问题时open方法会报错,所以配合try语句使用来捕捉一异常。try...open语法简单优雅,可读性强,而且不需要引入任何模块

if__name__=='__main__':

try:

f=open("/untitled/chapter3.py")

f.close()

exceptIOError:

print"Fileisnotaccessible."

pathlib模块

在python2中pathlib属于第三方模块,需要单独安装。但是python3中pathlib已经是内建模块了

pathlib用法简单,与open类似。首先使用pathlib创建对象,进而使用exists(),is_file()等方法

if__name__=='__main__':

path=pathlib.Path("chapter3.py")

printpath.exists()

printpath.is_file()

以上内容为大家介绍了python培训之判断文件是否存在,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python作为小白该如何抉择python编辑器? 刚开始接触编程,有一个好的编辑器上手,那学习起来肯定是事半功倍的!本篇就给大家介绍适合零基础小白学习Python的四种编辑器,希望大家受用!1.SublimeText:这是一个轻量级的代码编辑器,跨平
  • python函数参数的定义有哪几种? 函数参数的使用有两个方面值得注意:函数参数是如何定义的以及在调用函数的过程中参数是如何被解析的。先看第一个问题,在python中函数参数的定义主要有四种方式:1.F(arg1,arg2,...)这是最
  • python怎么把/r/n替换成/n? python在文本编辑器中会自动将\r\n截断成\n,(在unix上换行使用\n,windows上,换行使用的是\r\n)于是,写了这个脚本,不用一行一行去改。来具体看下如何实现的:importosd
  • python序列化模块pickle和json的使用和区别 这是用于序列化的两个模块:json:用于字符串和python数据类型间进行转换pickle:用于python特有的类型和python的数据类型间进行转换Json模块提供了四个功能:dumps、dump
  • pythoneval的用法及注意事项 eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果。想象一下变量赋值时,将等号右边的表达式写成字符串的格式,将这个字符串作为eval的参数,eval的返回值就是这个表
  • python详细分析Python中运算符"=="和"is"的差别 在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、pythontype()(数据类型)和value(值)。is和==都是对对象进行比较判断作