python判断一个文件是否为空文件的几种方法

一. 思路分析

思路1: 获取文件大小, 验证文件大小是否为0(可以使用os库或pathlib库)

思路2: 读取文件的第一个字符, 验证第一个字符是否存在

二. 实现方法

方法1: 思路1 + os库的path方法

# -*- coding: utf-8 -*-
# @Time    : 2020/11/23 12:21
# @Author  : chinablue

import os


def is_empty_file_1(file_path: str):
    assert isinstance(file_path, str), f"file_path参数类型不是字符串类型: {type(file_path)}"
    assert os.path.isfile(file_path), f"file_path不是一个文件: {file_path}"
return os.path.getsize(file_path) == 0

方法2: 思路1 + os库的stat方法

# -*- coding: utf-8 -*-
# @Time    : 2020/11/23 12:21
# @Author  : chinablue

import os


def is_empty_file_2(file_path: str):
    assert isinstance(file_path, str), f"file_path参数类型不是字符串类型: {type(file_path)}"
    assert os.path.isfile(file_path), f"file_path不是一个文件: {file_path}"

    return os.stat(file_path).st_size == 0

方法3: 思路1 + pathlib库

# -*- coding: utf-8 -*-
# @Time    : 2020/11/23 12:21
# @Author  : chinablue

import pathlib


def is_empty_file_3(file_path: str):
    assert isinstance(file_path, str), f"file_path参数类型不是字符串类型: {type(file_path)}"
    p = pathlib.Path(file_path)
    assert p.is_file(), f"file_path不是一个文件: {file_path}"

    return p.stat().st_size == 0

方法4: 思路2

# -*- coding: utf-8 -*-
# @Time    : 2020/11/23 12:21
# @Author  : chinablue

import os


def is_empty_file_4(file_path: str):
    assert isinstance(file_path, str), f"file_path参数类型不是字符串类型: {type(file_path)}"
    assert os.path.isfile(file_path), f"file_path不是一个文件: {file_path}"

    with open(file_path, "r", encoding="utf-8") as f:
        first_char = f.read(1)
        if not first_char:
            return True
return False

 

posted @ 2020-12-29 00:07  后来者2012  阅读(11584)  评论(0编辑  收藏  举报