Thay đổi tập tin giám sát cơ quan giám sát Python

Tôi cần xem tệp nhật ký để biết các thay đổi. Sau khi xem qua các câu hỏi về stackoverflow, tôi thấy mọi người đề xuất #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 7. Vì vậy, tôi đang cố kiểm tra và không chắc nên thêm mã vào đâu khi các tệp thay đổi

import time from watchdog.observers import Observer from watchdog.events import LoggingEventHandler if __name__ == "__main__": event_handler = LoggingEventHandler() observer = Observer() observer.schedule(event_handler, path='.', recursive=False) observer.start() try: while True: time.sleep(1) else: print "got it" except KeyboardInterrupt: observer.stop() observer.join()

Tôi thêm "got it" vào đâu — trong vòng lặp #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 8 nếu tệp đã được thêm/thay đổi?

Giải pháp tốt nhất

Thay vì #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 0, hãy xác định trình xử lý của bạn

#!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join()

#!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 1 được gọi khi một tệp hoặc thư mục được sửa đổi

Giải pháp liên quan

Python – Cách kiểm tra xem một tệp có tồn tại mà không có ngoại lệ hay không

Nếu lý do bạn đang kiểm tra là để bạn có thể làm điều gì đó như #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 2, thì sẽ an toàn hơn khi sử dụng #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 3 xung quanh nỗ lực mở nó. Việc kiểm tra rồi mở có nguy cơ khiến tệp bị xóa hoặc bị di chuyển hoặc điều gì đó xảy ra giữa thời điểm bạn kiểm tra và khi bạn cố mở tệp đó

Nếu bạn không định mở tệp ngay lập tức, bạn có thể sử dụng #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 4

Trả lại #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 5 nếu đường dẫn là tệp thông thường hiện có. Điều này tuân theo các liên kết tượng trưng, ​​vì vậy cả islink() và isfile() đều có thể đúng với cùng một đường dẫn

________số 8

nếu bạn cần chắc chắn đó là một tập tin

Bắt đầu với Python 3. 4, mô-đun #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 6 cung cấp cách tiếp cận hướng đối tượng (được nhập lại vào #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 7 trong Python 2. 7)

#!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 1

Để kiểm tra một thư mục, hãy làm

#!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 2

Để kiểm tra xem một đối tượng #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 8 có tồn tại độc lập với tệp hay thư mục hay không, hãy sử dụng #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 9

#!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 5

Bạn cũng có thể sử dụng import os.path os.path.isfile(fname) 0 trong khối #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 3

#!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 8

Python – Cách sao chép tệp trong Python

import os.path os.path.isfile(fname) 2 có nhiều phương pháp bạn có thể sử dụng. một trong số đó là

#!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 0
  • Sao chép nội dung của tệp có tên import os.path os.path.isfile(fname) 3 sang tệp có tên import os.path os.path.isfile(fname) 4. Cả import os.path os.path.isfile(fname) 3 và import os.path os.path.isfile(fname) 4 cần phải là toàn bộ tên tệp của các tệp, bao gồm cả đường dẫn
  • Vị trí đích phải có thể ghi được;
  • Nếu import os.path os.path.isfile(fname) 4 đã tồn tại, nó sẽ được thay thế
  • Không thể sao chép các tệp đặc biệt như ký tự hoặc khối thiết bị và đường ống bằng chức năng này
  • Với import os.path os.path.isfile(fname) 9, import os.path os.path.isfile(fname) 3 và import os.path os.path.isfile(fname) 4 là các tên đường dẫn được đặt dưới dạng #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 12

Một phương pháp import os.path os.path.isfile(fname) 2 khác để xem xét là #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 14. Nó tương tự nhưng bảo tồn nhiều siêu dữ liệu hơn (e. g. dấu thời gian)

Nếu bạn sử dụng các hoạt động của #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 15, hãy sử dụng import os.path os.path.isfile(fname) 9 thay vì #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 17. #!/usr/bin/python import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f'event type: {event.event_type} path : {event.src_path}') if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path='/data/', recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() 17 sẽ chỉ chấp nhận chuỗi

Chủ đề