文件监视问题
文件监视,能不能获取到具体变化的内容?例如:文件夹有5个文本,其中一个文本中被添加了“今天天气很好”。有没什么办法利用文件夹监视,并取出“今天天气很好”新增的内容
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 " 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脚本一个,通过改第五十七行到第五十九行的内容可以实现要求,还有就是,依赖的库记得装 本帖最后由 守护者 于 2016-12-23 14:05 编辑
传个附件吧,自己写的小玩意,一个是进程的监控,监控结果会写到tasklist.txt里
还有一个是文件监控的,文件发生变化之后就会在当前目录新建一个dump什么玩意的文件夹,然后把文件拷贝到这个目录,前面会加日期
这个文件监控双击之后要求输入监控路径,路径可以有很多,输入一个然后就回车一下,不输入直接回车就开始监控了,自己研究吧
完了,我好像说错什么了,楼主这个要求需要创建快照才行吧,,毕竟最开始不知道文件的内容
守护者 发表于 2016-12-23 13:53
传个附件吧,自己写的小玩意,一个是进程的监控,监控结果会写到tasklist.txt里
还有一个是文件监控的,文 ...
谢谢指点,我再研究研究
页:
[1]