在 Python 中检查文件是否为空
Check if a file is empty in 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('/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()
方法返回,否则返回。True
False
或者,您可以使用pathlib.Path
该类。
使用 pathlib.path() 检查文件是否为空
检查文件是否为空:
- 实例化
pathlib.Path()
类以创建 Path 对象。 - 使用
stat()
方法获取stat_result
对象。 - 使用该
st_size
属性获取文件的大小。 - 如果文件的大小是
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
类用于根据您的操作系统创建一个或一个对象PosixPath
。WindowsPath
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
字节,那么它是空的,否则,它不是空的。