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

在python中如何去检测文件是否存在?你平时是不是写检查文件是否存在也是同如下 import os pathdef read file data file if not os path

大家好,欢迎来到IT知识分享网。

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

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

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

import os.path def 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.path def 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 pathlib def read_file_data(file): try: data = pathlib.Path(file).read_text() except FileNotFoundError: print(f"{file}文件不存在") return except IsADirectoryError: print(f"{file}是一个目录") return

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

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()

分离文件名和扩展名

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/123285.html

(0)
上一篇 2025-10-11 10:45
下一篇 2025-10-11 11:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信