Python中如何判定仅含空行、空格、制表符的文件为空白文件
实现方案
核心逻辑
- 优先判断文件大小是否为0,无需读取内容即可快速判定为空,性能开销极低
- 若文件大小大于0,逐行读取内容,通过
strip()方法移除每行首尾的所有空白字符(包含空格、制表符\t、换行符\n、回车符\r等) - 只要存在任意一行处理后不为空,即可判定文件存在有效记录;所有行处理后均为空则判定文件为空,完全覆盖你提到的三类场景
优化后代码
import os def is_empty_file(fname, encoding='utf-8'): # 快速判断0字节空文件 if os.path.getsize(fname) == 0: return True # 逐行校验是否存在有效内容 with open(fname, 'r', encoding=encoding) as f: for line in f: if line.strip(): return False return True # 调用示例 if is_empty_file("your_file_path.txt"): print("File is Empty")
方案特点
- 大文件适配:不需要全量加载文件内容,遇到第一条有效记录就终止读取,内存占用极低
- 规则完全匹配:空行、全空格内容、全制表符内容都会被
strip()处理为空字符串,全部命中时返回空判定 - 兼容性优化:新增编码参数,避免不同操作系统默认编码差异导致的读取报错
内容的提问来源于stack exchange,提问作者codeholic24
相关产品推荐
相关产品推荐

