繁体   English   中英

如何在 Python 中正确定义 class?

[英]How do I define a class properly in Python?

我一直在尝试编写一个事件处理程序脚本来将文件从一个文件夹移动到另一个文件夹。 但我每次都遇到同样的错误。

import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import os
import json

folder_to_track = 'C:\\Users\\****\\OneDrive\\****\\Python_Projects\\Python_Scripts'
folder_destination = 'C:\\Users\\****\\OneDrive\\****\\prueba'

class MyHandler(FileSystemEventHandler):
    i=1
def on_modified(self, event):
    for filename in os.listdir(folder_to_track):
        src = os.path.join(folder_to_track, filename)
        new_destination = os.path.join(folder_destination, filename)
        os.rename(src, new_destination)

event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, folder_to_track, recursive=True)
observer.start()

try:
    while True:
        time.sleep(10)
except KeyboardInterrupt:
    observer.stop()
observer.join()

错误是:

Traceback (most recent call last):
File "C:\Users\****\OneDrive\****\Python_Projects\Python_Scripts\miraperros.py", line 11, in 
<module>
class MyHandler(FileSystemEventHandler):
File "C:\Users\****\OneDrive\****\Python_Projects\Python_Scripts\miraperros.py", line 19, in 
MyHandler
event_handler = MyHandler()
NameError: name 'MyHandler' is not defined
[Finished in 0.1s with exit code 1]

我不知道我做错了什么,谢谢你的帮助。 这是我关于 Stack Overflow 的第一个问题,所以如果我在询问方法上做错了什么,我很想听听反馈。

我一直在尝试编写一个事件处理程序脚本来将文件从一个文件夹移动到另一个文件夹。 但我每次都遇到同样的错误。

import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import os
import json

folder_to_track = 'C:\\Users\\****\\OneDrive\\****\\Python_Projects\\Python_Scripts'
folder_destination = 'C:\\Users\\****\\OneDrive\\****\\prueba'

class MyHandler(FileSystemEventHandler):
    i=1
def on_modified(self, event):
    for filename in os.listdir(folder_to_track):
        src = os.path.join(folder_to_track, filename)
        new_destination = os.path.join(folder_destination, filename)
        os.rename(src, new_destination)

event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, folder_to_track, recursive=True)
observer.start()

try:
    while True:
        time.sleep(10)
except KeyboardInterrupt:
    observer.stop()
observer.join()

错误是:

Traceback (most recent call last):
File "C:\Users\****\OneDrive\****\Python_Projects\Python_Scripts\miraperros.py", line 11, in 
<module>
class MyHandler(FileSystemEventHandler):
File "C:\Users\****\OneDrive\****\Python_Projects\Python_Scripts\miraperros.py", line 19, in 
MyHandler
event_handler = MyHandler()
NameError: name 'MyHandler' is not defined
[Finished in 0.1s with exit code 1]

我不知道我做错了什么,谢谢你的帮助。 这是我关于 Stack Overflow 的第一个问题,所以如果我在询问方法上做错了什么,我很想听听反馈。

我一直在尝试编写一个事件处理程序脚本来将文件从一个文件夹移动到另一个文件夹。 但我每次都遇到同样的错误。

import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import os
import json

folder_to_track = 'C:\\Users\\****\\OneDrive\\****\\Python_Projects\\Python_Scripts'
folder_destination = 'C:\\Users\\****\\OneDrive\\****\\prueba'

class MyHandler(FileSystemEventHandler):
    i=1
def on_modified(self, event):
    for filename in os.listdir(folder_to_track):
        src = os.path.join(folder_to_track, filename)
        new_destination = os.path.join(folder_destination, filename)
        os.rename(src, new_destination)

event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, folder_to_track, recursive=True)
observer.start()

try:
    while True:
        time.sleep(10)
except KeyboardInterrupt:
    observer.stop()
observer.join()

错误是:

Traceback (most recent call last):
File "C:\Users\****\OneDrive\****\Python_Projects\Python_Scripts\miraperros.py", line 11, in 
<module>
class MyHandler(FileSystemEventHandler):
File "C:\Users\****\OneDrive\****\Python_Projects\Python_Scripts\miraperros.py", line 19, in 
MyHandler
event_handler = MyHandler()
NameError: name 'MyHandler' is not defined
[Finished in 0.1s with exit code 1]

我不知道我做错了什么,谢谢你的帮助。 这是我关于 Stack Overflow 的第一个问题,所以如果我在询问方法上做错了什么,我很想听听反馈。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM