飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2449|回复: 3

[求助] 文件监视问题

[复制链接]
  • TA的每日心情

    2024-3-23 14:53
  • 签到天数: 98 天

    [LV.6]常住居民II

    发表于 2016-12-22 11:35:55 | 显示全部楼层 |阅读模式
    文件监视,能不能获取到具体变化的内容?
    例如:文件夹有5个文本,其中一个文本中被添加了“今天天气很好”。有没什么办法利用文件夹监视,并取出“今天天气很好”新增的内容
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2023-7-4 21:57
  • 签到天数: 61 天

    [LV.6]常住居民II

    发表于 2016-12-23 13:45:49 | 显示全部楼层
    import threading
    import win32file
    import win32con
    import os
    dirs_to_monitor = []
    while True:
        site=raw_input("Please inpue Monirot Site:")
        # site.strip("\r").strip("\n")
        if site=="ok":
            break
        dirs_to_monitor.append(site)
    FILE_CREATED      = 1
    FILE_DELETED      = 2
    FILE_MIDIFIED     = 3
    FILR_RENAMED_FROM = 4
    FILE_RENAMED_TO   = 5


    def start_monitor(path_to_watch):
        FILE_LIST_DIRECTORY = 0x0001
        h_directory =win32file.CreateFile(
            path_to_watch,
            FILE_LIST_DIRECTORY,
            win32con.FILE_SHARE_READ | win32con.FILE_SHARE_WRITE | win32con.FILE_SHARE_DELETE,
            None,
            win32con.OPEN_EXISTING,
            win32con.FILE_FLAG_BACKUP_SEMANTICS,
            None
        )
        while True:
            try:
                result = win32file.ReadDirectoryChangesW(
                    h_directory,
                    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 result:
                    full_filrname=os.path.join(path_to_watch,filename)
                    if action ==FILE_CREATED:
                        print "[ + ] Created %s" % full_filrname
                    elif action ==FILE_DELETED:
                        print "[ - ] Delete %s" % full_filrname
                    elif action==FILE_MIDIFIED:
                        print "[ * ] Modified %s" %full_filrname
                        print "[vvv] Dumping contents..."
                        try:
                            f=open(full_filrname,"rb")
                            contends= f.read()
                            f.close()
                            print contends
                            print "[^^^] Dump Complete."
                        except:
                            print "[!!!] Failed."
                    elif action==FILR_RENAMED_FROM:
                        print "[ > ] Renamed from: %s" %full_filrname
                    elif action==FILE_RENAMED_TO:
                        print "[ < ] Rename to: %s" %full_filrname
                    else:
                        print "[???] Unknown: %s" %full_filrname
            except:
                pass

    for path in dirs_to_monitor:
        montor_thread = threading.Thread(target=start_monitor,args=(path,))
        print "Start Site Monitor Site:%s" % path
        montor_thread.start()



    python脚本一个,通过改第五十七行到第五十九行的内容可以实现要求,还有就是,依赖的库记得装
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2023-7-4 21:57
  • 签到天数: 61 天

    [LV.6]常住居民II

    发表于 2016-12-23 13:53:20 | 显示全部楼层
    本帖最后由 守护者 于 2016-12-23 14:05 编辑

    传个附件吧,自己写的小玩意,一个是进程的监控,监控结果会写到tasklist.txt里
    还有一个是文件监控的,文件发生变化之后就会在当前目录新建一个dump什么玩意的文件夹,然后把文件拷贝到这个目录,前面会加日期
    这个文件监控双击之后要求输入监控路径,路径可以有很多,输入一个然后就回车一下,不输入直接回车就开始监控了,自己研究吧









    完了,我好像说错什么了,楼主这个要求需要创建快照才行吧,,毕竟最开始不知道文件的内容




    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2024-3-23 14:53
  • 签到天数: 98 天

    [LV.6]常住居民II

     楼主| 发表于 2016-12-24 13:56:24 | 显示全部楼层
    守护者 发表于 2016-12-23 13:53
    传个附件吧,自己写的小玩意,一个是进程的监控,监控结果会写到tasklist.txt里
    还有一个是文件监控的,文 ...

    谢谢指点,我再研究研究
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表