python实现实时监控文件内容重命名
时间: 2023-10-18 22:27:00 浏览: 119
python实现实时监控文件的方法
你可以使用Python的`watchdog`库来实现实时监控文件内容的重命名。下面是一个示例代码:
```python
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class FileRenameHandler(FileSystemEventHandler):
def __init__(self, old_name, new_name):
self.old_name = old_name
self.new_name = new_name
def on_modified(self, event):
if not event.is_directory and event.src_path.endswith(self.old_name):
new_path = event.src_path.replace(self.old_name, self.new_name)
try:
os.rename(event.src_path, new_path)
print(f'Renamed {event.src_path} to {new_path}')
except Exception as e:
print(f'Failed to rename file: {str(e)}')
# 指定要监控的目录和文件名
dir_path = '/path/to/directory'
old_file_name = 'old_file.txt'
new_file_name = 'new_file.txt'
event_handler = FileRenameHandler(old_file_name, new_file_name)
observer = Observer()
observer.schedule(event_handler, dir_path, recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
```
在上述代码中,`FileRenameHandler`类继承自`FileSystemEventHandler`,并重写了`on_modified`方法。当指定的目录中的文件被修改时,该方法会被触发。在方法中,我们检查事件是否是文件的修改事件以及文件名是否与要重命名的文件名匹配。如果匹配成功,我们使用`os.rename`函数将文件重命名,并输出相应的信息。
你需要将代码中的`/path/to/directory`替换为你要监控的目录的路径,`old_file.txt`替换为你要重命名的文件名,`new_file.txt`替换为你想要改成的新文件名。运行代码后,它将实时监控指定目录中的文件内容,并在文件修改后进行重命名操作。
阅读全文