龙空技术网

在python中如何去检测文件是否存在?

搬砖搬知识 663

前言:

目前看官们对“python 判断文件存不存在”大概比较关心,你们都需要知道一些“python 判断文件存不存在”的相关资讯。那么小编也在网摘上汇集了一些关于“python 判断文件存不存在””的相关资讯,希望朋友们能喜欢,看官们一起来学习一下吧!

你平时是不是写检查文件是否存在也是同如下:

import os.pathdef read_file_data(file):    if not os.path.exists(file):        print(f"{file}文件不存在")        return    # 这里会有一个问题,当程序执行到这里的时候,某种原因这个文件被删掉了,这个时候执行下面的代码就会报错了。    with open(file) as f:        data = f.read()

如代码注释,虽然前面的代码检查了文件的存在性,但是可能后面这个文件不存在了,这时候去打开文件就会失败了。所以我们需要对代码进行优化,做一个异常处理。

import os.pathdef read_file_data(file):    if not os.path.exists(file):        print(f"{file}文件不存在")        return    try:        with open(file) as f:            data = f.read()    except FileNotFoundError:        print(f"{file}文件不存在")        return    except IsADirectoryError:        print(f"{file}是一个目录")        return

现在感觉代码安全了,但是你有没有发现前面的检查文件是否存在没有任何意义,所以你可以把这部分代码删掉,最终变成:

import os.pathdef read_file_data(file):    try:        with open(file) as f:            data = f.read()    except FileNotFoundError:        print(f"{file}文件不存在")        return    except IsADirectoryError:        print(f"{file}是一个目录")        return

其实代码还能再优化,我个人建议所有的文件操作,尽量使用pathlib:

import pathlibdef read_file_data(file):    try:        data = pathlib.Path(file).read_text()    except FileNotFoundError:        print(f"{file}文件不存在")        return    except IsADirectoryError:        print(f"{file}是一个目录")        return

对pathlib的接口用法做个总结,特此声明,我也是偷懒,如下总结部分是摘自知乎:,如有侵权请告知。

pathlib操作

os及os.path操作

功能描述

Path.resolve()

os.path.abspath()

获得绝对路径

Path.chmod()

os.chmod()

修改文件权限和时间戳

Path.mkdir()

os.mkdir()

创建目录

Path.rename()

os.rename()

文件或文件夹重命名,如果路径不同,会移动并重新命名

Path.replace()

os.replace()

文件或文件夹重命名,如果路径不同,会移动并重新命名,如果存在,则破坏现有目标。

Path.rmdir()

os.rmdir()

删除目录

Path.unlink()

os.remove()

删除一个文件

Path.unlink()

os.remove()

删除一个文件

Path.unlink()

os.unlink()

删除一个文件

Path.cwd()

os.getcwd()

获得当前工作目录

Path.exists()

os.path.exists()

判断是否存在文件或目录name

Path.home()

os.path.expanduser()

返回电脑的用户目录

Path.is_dir()

os.path.isdir()

检验给出的路径是一个文件

Path.is_file()

os.path.isfile()

检验给出的路径是一个目录

Path.is_symlink()

os.path.islink()

检验给出的路径是一个符号链接

Path.stat()

os.stat()

获得文件属性

PurePath.is_absolute()

os.path.isabs()

判断是否为绝对路径

PurePath.joinpath()

os.path.join()

连接目录与文件名或目录

PurePath.name

os.path.basename()

返回文件名

PurePath.parent

os.path.dirname()

返回文件路径

Path.samefile()

os.path.samefile()

判断两个路径是否相同

PurePath.suffix

os.path.splitext()

分离文件名和扩展名

标签: #python 判断文件存不存在 #python判断文件存不存在不存在就新建 #python创建文件夹判断存在 #怎样查看电脑有没有python