在 Python 中检查文件是否为空
检查文件是否为空:
-
使用
os.stat()
方法获取文件的状态。 -
使用
st_size
属性获取文件的大小(以字节为单位)。 - 如果文件的大小为 0 字节,则文件为空。
import os
# 👇️ with relative path
if os.stat('example.txt').st_size == 0:
print('The file is empty')
else:
print('The file is not empty')
# ---------------------------------------------
# 👇️ with absolute path
if os.stat('/Users/jiyik/workspace/python/example.txt').st_size == 0:
print('The file is empty')
else:
print('The file is not empty')
我们使用 os.stat()
方法来获取文件的状态。
该方法可以传递文件的相对路径或绝对路径。
os.stat
方法返回一个表示给定文件状态的 stat_result 对象。
对象的 st_size 属性返回文件的大小(以字节为单位)。
import os
if os.stat('example.txt').st_size == 0:
print('The file is empty')
else:
print('The file is not empty')
如果文件的大小为 0 字节,则文件为空。
如果需要检查文件是否为空,可以使用不等于 !=
运算符。
import os
if os.stat('example.txt').st_size != 0:
print('The file is NOT empty')
如果指定的文件不存在,该方法将引发 FileNotFoundError
异常。
如果需要处理错误,可以使用 try/except
语句。
import os
try:
if os.stat('not-found.txt').st_size == 0:
print('The file is empty')
except FileNotFoundError:
# 👇️ this runs
print('The specified file does NOT exist')
指定的文件不存在,因此引发 FileNotFoundError
异常,然后由 except 块处理。
或者,我们可以使用 os.path.getsize()
方法。
使用 os.path.getsize() 检查文件是否为空
使用 os.path.getsize() 方法检查文件是否为空,例如 如果 os.path.getsize('example.txt') == 0:
。 如果 os.path.getsize()
方法返回 0,则文件的大小为 0 字节并且为空。
import os
# 👇️ 相对路径
if os.path.getsize('example.txt') == 0:
print('The file is empty')
else:
print('The file is NOT empty')
# ---------------------------------------------
# 👇️ 绝对路径
if os.path.getsize(
'/Users/jiyik/workspace/python/example.txt'
) == 0:
print('The file is empty')
else:
print('The file is NOT empty')
os.path.getsize
方法采用路径并返回路径的大小(以字节为单位)。
如果文件的大小为 0 字节,则它是空的。
如果指定的文件不存在或不可访问,该方法将引发 OSError 异常。
如果需要处理错误,请使用 try/except
语句。
import os
try:
if os.path.getsize('not-found.txt') == 0:
print('The file is empty')
except OSError:
# 👇️ this runs
print('The specified file does NOT exist')
给定路径不存在,因此引发 OSError
异常,然后由 except 块处理。
或者,我们可以使用 os.path.exists()
方法检查文件是否存在。
import os
my_path = '/Users/jiyik/workspace/python/example.txt'
if os.path.exists(my_path) and os.path.getsize(my_path) == 0:
print('The file is empty')
else:
print('The file does NOT exist or is not empty')
如果提供的路径存在,则 os.path.exists()
方法返回 True,否则返回 False。
或者,我们可以使用 pathlib.Path
类。
使用 pathlib.path() 检查文件是否为空
检查文件是否为空:
-
实例化
pathlib.Path()
类以创建 Path 对象。 -
使用
stat()
方法获取 stat_result 对象。 - 使用 st_size 属性获取文件的大小。
- 如果文件的大小是 0 字节,则它是空的。
import pathlib
my_path = pathlib.Path('/Users/jiyik/workspace/python/example.txt')
if my_path.stat().st_size == 0:
print('The file is empty')
else:
print('The file is NOT empty')
pathlib.Path
类用于根据您的操作系统创建 PosixPath 或 WindowsPath 对象。
Path.stat
方法返回一个 stat_result 对象,就像来自 os.stat()
方法的对象一样。
该对象有一个 st_size 属性,它以字节为单位返回文件的大小。
如果指定的路径不存在,则会引发 FileNotFoundError
异常。
如果需要处理错误,可以使用 try/except
块。
import pathlib
my_path = pathlib.Path(
'/Users/jiyik/workspace/python/example.txt')
try:
if my_path.stat().st_size == 0:
print('The file is empty')
else:
print('The file is NOT empty')
except FileNotFoundError:
print('The file does NOT exist')
选择哪种方法是个人喜好的问题。 他们都得到了文件的大小。
如果文件的大小为 0 字节,则它是空的,否则它不是空的。
相关文章
Python for 循环中的下一项
发布时间:2023/04/26 浏览次数:179 分类:Python
-
本文讨论了 Python 中的 for 循环以及如何通过使用 for 循环和示例来跳过列表的第一个元素。
Python While 循环用户输入
发布时间:2023/04/26 浏览次数:148 分类:Python
-
我们可以在 while 循环中使用 input() 函数来输入数据,直到在 Python 中满足某个条件。
在 Python 中将整数转换为罗马数字
发布时间:2023/04/26 浏览次数:87 分类:Python
-
本篇文章将介绍在 Python 中将整数转换为罗马数字。以下是一个 Python 程序的实现,它将给定的整数转换为其等效的罗马数字。
在 Python 中将罗马数字转换为整数
发布时间:2023/04/26 浏览次数:144 分类:Python
-
本文讨论如何在 Python 中将罗马数字转换为整数。 我们将使用 Python if 语句来执行此操作。 我们还将探讨在 Python 中将罗马数字更改为整数的更多方法。
在 Python 中读取 gzip 文件
发布时间:2023/04/26 浏览次数:70 分类:Python
-
本篇文章强调了压缩文件的重要性,并演示了如何在 Python 中使用 gzip 进行压缩和解压缩。
在 Python 中锁定文件
发布时间:2023/04/26 浏览次数:141 分类:Python
-
本文解释了为什么在 Python 中锁定文件很重要。 这讨论了当两个进程在没有锁的情况下与共享资源交互时会发生什么的示例,为什么在放置锁之前知道文件状态很重要,等等
在 Python 中将 PDF 转换为文本
发布时间:2023/04/26 浏览次数:196 分类:Python
-
在本教程中,我们将学习如何使用 Python 使用 PyPDF2、Aspose 和 PDFminer 将 PDF 文档转换为文本文件。
在 Python 中创建临时文件
发布时间:2023/04/26 浏览次数:53 分类:Python
-
本文讲解了tempfile库函数的四个子函数:TemporaryFile、NamedTemporaryFile、mkstemp、TemporaryDirectory。 每个部分都提供了适当的程序,以简化对概念的理解。