在 Python 中检查文件是否为空

在 Python 中检查文件是否为空

Check if a file is empty in Python

检查文件是否为空:

  1. 使用os.stat()方法获取文件的状态。
  2. 使用该st_size属性获取文件的大小(以字节为单位)。
  3. 如果文件的大小是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('/home/borislav/Desktop/bobbyhadz_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()方法检查文件是否为空,例如
if os.path.getsize('example.txt') == 0:. 如果该os.path.getsize()方法返回0,则该文件的大小为0字节并且为空。

主程序
import os # 👇️ with relative path if os.path.getsize('example.txt') == 0: print('The file is empty') else: print('The file is NOT empty') # --------------------------------------------- # 👇️ with absolute path if os.path.getsize( '/home/borislav/Desktop/bobbyhadz_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 = '/home/borislav/Desktop/bobbyhadz_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()方法返回,否则返回。TrueFalse

或者,您可以使用pathlib.Path该类。

使用 pathlib.path() 检查文件是否为空

检查文件是否为空:

  1. 实例化pathlib.Path()类以创建 Path 对象。
  2. 使用stat()方法获取stat_result对象。
  3. 使用该st_size属性获取文件的大小。
  4. 如果文件的大小是0字节,则它是空的。
主程序
import pathlib my_path = pathlib.Path('/home/borislav/Desktop/bobbyhadz_python/example.txt') if my_path.stat().st_size == 0: print('The file is empty') else: print('The file is NOT empty')

pathlib.Path
类用于根据您的操作系统创建一个
一个对象PosixPathWindowsPath

Path.stat
方法返回一个
stat_result对象,就像该方法
中的对象一样
os.stat()

该对象具有一个st_size返回文件大小(以字节为单位)的属性。

如果指定的路径不存在,FileNotFoundError则会引发异常。

try/except如果需要处理错误,可以使用块。

主程序
import pathlib my_path = pathlib.Path( '/home/borislav/Desktop/bobbyhadz_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字节,那么它是空的,否则,它不是空的。

发表评论