搬运:Python for Windows——监控Windows某个目录下文件的变化

https://win32com.goermezer.de/content/view/286/285/

这个网站真是给力,不多说,代码直接搬运过来,还有我的测试结果,拿走不谢!

import os
import sys

import win32file
import win32con

ACTIONS = {
  1: "Created",
  2: "Deleted",
  3: "Updated",
  4: "Renamed from something",
  5: "Renamed to something"
}

FILE_LIST_DIRECTORY = 0x0001

path_to_watch = ‘E:/test‘
print ‘Watching changes in‘, path_to_watch
hDir = win32file.CreateFile(
  path_to_watch,
  FILE_LIST_DIRECTORY,
  win32con.FILE_SHARE_READ | win32con.FILE_SHARE_WRITE,
  None,
  win32con.OPEN_EXISTING,
  win32con.FILE_FLAG_BACKUP_SEMANTICS,
  None
)
while 1:

    results = win32file.ReadDirectoryChangesW(
        hDir,
        1024,
        True,
        win32con.FILE_NOTIFY_CHANGE_FILE_NAME |
        win32con.FILE_NOTIFY_CHANGE_DIR_NAME |
        win32con.FILE_NOTIFY_CHANGE_ATTRIBUTES |
        win32con.FILE_NOTIFY_CHANGE_SIZE |
        win32con.FILE_NOTIFY_CHANGE_LAST_WRITE |
        win32con.FILE_NOTIFY_CHANGE_SECURITY,
        None,
        None)
    for action, filename in results:
        full_filename = os.path.join(path_to_watch, filename)
        print full_filename, ACTIONS.get(action, "Unknown")

运行结果:

到这一步,后面可以做得就多了,可以写LOG,做统计,做预警,太爽啦!

时间: 2024-10-15 05:00:56

搬运:Python for Windows——监控Windows某个目录下文件的变化的相关文章

使用windows API函数获取目录下所有文件名---目录下文件的扫描和处理

直接上代码 // test_max.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <windows.h> #include <Shlwapi.h> #include <iostream> #include <string> #include <vector> #pragma comment(lib,"shlwapi.lib") //注意放置的位置

监控web站点目录下所有文件是否被恶意篡改

监控web站点目录下所有文件是否被恶意篡改,(文件内容被改了)如果有的就打印改动的文件名 定时任务:每三分钟执行一次监测一次 文件被篡改的特征: 大小可能会变化(为什么说可能呢,如果把里面的值1改为2大小是不会变化的) 修改时间会变化   (文件测试符ot,nt) 文件内容会变化,通过md5sum指纹判断 增加或者删除文件 问题: 代码发布方案:大公司或规范的公司,不会时刻传代码,每天1-2次 脚本不严谨啊,工作中先解决文件,然后在解决好问题 #!/bin/sh num=`cat site.lo

Python实例31[批量对目录下文件重命名]

经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表达式来对目录下的所有文件重命名:例如: 修改前:[大家网]Mac OS X for Unix Geeks[www.TopSage.com].mobi修改后:Mac OS X for Unix Geeks.mobi python代码如下 import osimport re def rename_dir(dir,regex,f):  if not os.path.isdir(dir) or

C# 利用FTP自动下载xml文件后利用 FileSystemWatcher 监控目录下文件变化并自动更新数据库

using FtpLib; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.IO; using System.Linq; using System.ServiceProcess; using System.Text; using System.Threading; using

【技术干货】Zabbix定制监控目录下文件的创建状态

由于项目需求:需要监控某一目录下的某一文件在指定时间段是否创建成功,所以接下来将演示如何实现这一需求. 假设目录是:/home/monitor/test 文件名称是: ADAPTER_CP0006_GLP_INFO.20190701和ADAPTER_CP0006_GLP _INFO.20190701.ok 指定时间是:7:00 Zabbix被监控端的配置: 1. 在/usr/local/zabbix/etc/zabbix_agentd.conf.d/目录的操作: vim file_status.

python生成器 获取 目录下文件

# os.walk()和os.list 都是得到所有文件的列表, 如果目录下文件特别多, 上亿了, 我们就需要生成器的方式获取 # 要求目录下面没有目录, 会递归到子目录下面找文件, (如果有子目录可以在下面代码基础上做修改) def gen_file(path, per_file_count): # 目录和一次想要回去的文件数量 i = 0 scandir_it = scandir(path) # 递归获取目录下文件, 返回迭代器 while True: try: entry = next(s

目录下文件递归查找

python 使用yield实现目录下文件的递归查找(windows & linux通用) 转载自:https://www.cnblogs.com/weiok/p/4872119.html import os import fnmatch def iterfindfiles(path, fnexp): for root, dirs, files in os.walk(path): for filename in fnmatch.filter(files, fnexp): yield os.pat

linux 系统统计目录下文件夹的大小

du -ah --max-depth=1     这个是我想要的结果  a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度. du命令用来查看目录或文件所占用磁盘空间的大小.常用选项组合为:du -sh 一.du的功能:`du` reports the amount of disk space used by the specified files and for each subdirectory (of directory argum

linux获取目录下文件

查看当前目录下的文件:find . -type f查看当前目录下的文件夹: find . -type d如果文件file1不为空: if [ -s file1 ];then       echo "file1 不为空"fi #!/bin/sh for f in `find ./testdir -type f`; do         if [ -s $f ];then                 echo $f is not empty.                 echo