我正在一个项目中检查一个文件目录,并在创建日志文件时自动添加它们。每五分钟生成一个文件,但有些文件的文件大小为“0”,我希望在发生这种情况时发出警报。在
因此,我想采取的步骤基本上是:
这是我迄今为止拼凑起来的。如何获得所需的功能?在
import os
def is_non_zero_file(fpath): storage/Netflow/
return True if os.path.isfile(fpath) and os.path.getsize(fpath) > 0 else False
# I need to check storage/Netflow for files named by time e.g 13_56_05.txt
while True:
time.sleep(360)
除了枚举给定路径中的文件并随后过滤长度为零的文件之外,您可能还需要保持某种类型的状态,以确保不会多次收到同一个零长度文件的通知。也就是说,您可能不希望收到同一文件无限期为零长度的通知(尽管您可以修改下面的示例,如果您想要所述行为)。在
您可以选择执行诸如验证文件名是否严格符合命名约定之类的操作。您可能还需要验证文件名中包含的字符串日期戳是否为有效的日期时间。在
下面的示例使用glob模块(本身利用
os.listdir()
和fnmatch.fnmatch()
)来构建一组可能包含的文件。[1]该示例有意简化,并利用单个类来存储日志示例“state”。
KEEP_SAMPLES
样本被维护(在log_states
列表中,logState()
的实例,通过使用列表切片来实现。在一个单独的
alert(msg)
函数作为存根提供给可能发送邮件等的东西。。。在参考文献:
[1]https://docs.python.org/3.2/library/glob.html
相关问题 更多 >
编程相关推荐