这里将引见三种推断文件或文件夹是不是存在的要领,离别运用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怎样推断一个文件是不是存在的细致内容,更多请关注ki4网别的相干文章!