检查文件或者目录是否存在的Python程序
时间:2020-01-09 10:44:20 来源:igfitidea点击:
在本教程中,我们将了解如何检查Python中是否存在文件或者目录。
1.使用os模块
在Python标准库的os.path模块中,有以下方法可用于检查文件或者目录是否存在。
os.path.exists(path)-如果path指向现有路径,则返回true,使用此功能,我们可以在执行任何操作之前检查文件或者目录是否存在。
os.path.isfile(path)-如果path是现有的常规文件,则返回True。
os.path.isdir(path)-如果path是现有目录,则返回True。
Python程序检查文件是否存在
from os import path def test_file(file_path, mode='r'): if path.exists(file_path): print('File exists') with open(file_path, mode) as f: print(f.read()) else: print('File doesn\'t exist') test_file("F:/theitroad/Python/test.txt")
检查传递的路径是文件还是目录的Python程序。
from os import path def test_file(file_path, mode='r'): print('Passed path is a directory', path.isdir(file_path)) print('Passed path is a file', path.isfile(file_path)) # Passing file test_file("F:/theitroad/Python/test.txt") # Passing directory test_file("F:/theitroad/Python") # Passing non-existing file test_file("F:/theitroad/Python/myfile.txt")
输出:
Passed path is a directory False Passed path is a file True Passed path is a directory True Passed path is a file False Passed path is a directory False Passed path is a file False
2.将try-except与open()函数一起使用
如果我们尝试使用open()函数打开不存在的文件,则会引发FileNotFoundError异常。
def read_file(fname): try: f = open(fname, 'r') print(f.read()) except FileNotFoundError: print('File does not exit') except IOError: print('IO Error') finally: f.close()
如我们所见,这里有两个除了块以外的块,一个专门用于找不到文件的场景,另一个用于任何类型的IOError。最后还用于确保文件已关闭。
3.使用pathlib模块
Python 3.4中添加的pathlib模块提供了面向对象的文件系统路径,并提供了一种检查文件是否存在的首选方法,Python 3.4及更高版本。我们必须使用的方法是Path.exists()。
from pathlib import Path def test_file(file_path, mode='r'): file = Path(file_path) if file.exists(): print('File exists') with open(file_path, mode) as f: print(f.read()) else: print('File doesn\'t exist')
还有以下方法:
Path.is_dir()-此路径是否为目录。
Path.is_file()-此路径是否为常规文件。
from pathlib import Path def test_file(file_path, mode='r'): path = Path(file_path) print('Passed path is a directory', path.is_dir()) print('Passed path is a file', path.is_file())