在 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 pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串
在 Python Pandas 中使用 str.split 将字符串拆分为两个列表列
发布时间:2024/04/24 浏览次数:1124 分类:Python
-
本教程介绍如何使用 pandas str.split() 函数将字符串拆分为两个列表列。
在 Pandas 中将 Timedelta 转换为 Int
发布时间:2024/04/23 浏览次数:231 分类:Python
-
可以使用 Pandas 中的 dt 属性将 timedelta 转换为整数。
Python 中的 Pandas 插入方法
发布时间:2024/04/23 浏览次数:112 分类:Python
-
本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。
使用 Python 将 Pandas DataFrame 保存为 HTML
发布时间:2024/04/21 浏览次数:106 分类:Python
-
本教程演示如何将 Pandas DataFrame 转换为 Python 中的 HTML 表格。
如何将 Python 字典转换为 Pandas DataFrame
发布时间:2024/04/20 浏览次数:73 分类:Python
-
本教程演示如何将 python 字典转换为 Pandas DataFrame,例如使用 Pandas DataFrame 构造函数或 from_dict 方法。
如何在 Pandas 中将 DataFrame 列转换为日期时间
发布时间:2024/04/20 浏览次数:101 分类:Python
-
本文介绍如何将 Pandas DataFrame 列转换为 Python 日期时间。