在操作文件前,检查文件是否存在也是一个良好的编程习惯。通常来说,有三种常见方式来判断文件夹或文件是否存在,分别是os模块,try语句和pathlib模块。
python学习网,大量的免费python视频教程,欢迎在线学习!
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()原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容