用python写一个监控文件夹内文件增删改情况的程序,要求识别操作人,所作动作,操作对象
时间: 2023-05-23 08:02:39 浏览: 132
这个问题需要使用Python的watchdog包来监控文件夹内的文件增删改情况,并使用os包来获取操作人和操作对象的信息。以下是一个示例代码:
```
import os
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
if event.is_directory:
return None
elif event.event_type == 'modified':
# 获取操作人
user = os.getlogin()
# 获取操作对象
file_path = event.src_path
# 获取所作的动作
action = "modified"
print(f"{user} {action} {file_path}")
def on_created(self, event):
if event.is_directory:
return None
elif event.event_type == 'created':
# 获取操作人
user = os.getlogin()
# 获取操作对象
file_path = event.src_path
# 获取所作的动作
action = "created"
print(f"{user} {action} {file_path}")
def on_deleted(self, event):
if event.is_directory:
return None
elif event.event_type == 'deleted':
# 获取操作人
user = os.getlogin()
# 获取操作对象
file_path = event.src_path
# 获取所作的动作
action = "deleted"
print(f"{user} {action} {file_path}")
if __name__ == "__main__":
event_handler = MyHandler()
observer = Observer()
# 要监控的文件夹路径
path = "/path/to/folder"
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
```
这个程序使用watchdog包来监控文件夹内的文件变化,当有文件被创建、修改或删除时,会调用MyHandler中对应的on_created、on_modified或on_deleted方法。在这些方法中,使用os包获取操作人和操作对象的信息,然后打印出来。