用python写一个监控文件夹内文件增删改情况的程序
时间: 2023-05-23 08:02:34 浏览: 349
当然可以。你可以使用Python的watchdog库来监控文件夹的变化,包括文件的增删改等情况。以下是一个简单的示例程序:
```python
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
print(f"{event.src_path} has been modified")
if __name__ == "__main__":
path = '.' # 监控当前目录
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
```
此程序会监控当前目录下的文件变化,并在文件被修改时输出文件路径。你也可以扩展程序,比如在文件被新增或删除时发送邮件通知等。
相关问题
用python写一个监控文件夹内文件增删改情况的程序,要求识别操作人,所作动作,操作对象
这个问题需要使用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包获取操作人和操作对象的信息,然后打印出来。
用python写一个监控服务器上文件夹内文件增删改情况的程序,要求识别操作人,所作动作,操作对象
可以使用Python的watchdog库来监控指定文件夹内的文件变化。通过watchdog的事件回调函数可以获取到操作人信息、操作类型以及操作对象等信息。以下是一个基本的监控文件夹变化的代码,你可以对其进行修改以获取更详细的操作信息:
```python
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_any_event(self, event):
if event.is_directory:
return None
elif event.event_type == 'created':
# 文件被创建
print("操作人:%s,操作:%s了%s。" % (event.src_path, "创建", event.src_path.split('/')[-1]))
elif event.event_type == 'modified':
# 文件被修改
print("操作人:%s,操作:%s了%s。" % (event.src_path, "修改", event.src_path.split('/')[-1]))
elif event.event_type == 'deleted':
# 文件被删除
print("操作人:%s,操作:%s了%s。" % (event.src_path, "删除", event.src_path.split('/')[-1]))
else:
# 其他事件
print("无法识别的操作:%s" % (event.event_type))
if __name__ == "__main__":
path = '/path/to/monitor/' # 监控的文件夹路径
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
```
注意:本代码只提供基本的操作信息,如果要获取更多详细信息,比如操作人信息,需要在程序中进行相应的处理。
希望能帮到你!
阅读全文