我举了一个在python中显示错误的看门狗代码示例

我举了一个在python中显示错误的看门狗代码示例,python,watchdog,Python,Watchdog,我复制了一个示例代码 import sys import time import logging from watchdog.observers import Observer from watchdog.events import LoggingEventHandler if __name__ == "__main__": logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(m

我复制了一个示例代码

import sys
import time
import logging
from watchdog.observers import Observer
from watchdog.events import LoggingEventHandler

if __name__ == "__main__":
logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s - %(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S')
path = sys.argv[1] if len(sys.argv) > 1 else '.'
event_handler = LoggingEventHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    observer.stop()
observer.join()
请帮帮我 我是python广告看门狗的新手

我还需要以下问题的更多答案: 以下代码的输出以什么形式显示,在哪里? 如何更改代码中要监视的目录

并尝试按原样运行它,方法是使用以下命令将其保存在文件test.py中

python C:\folder\test.py

它返回了以下错误

C:\Python33>python c:\folder\test.py
Traceback (most recent call last):
File "c:\folder\test.py", line 4, in <module>
from watchdog.observers import Observer
File "C:\Python33\lib\site-packages\watchdog\observers\__init__.py", line 34,
in <module>
from watchdog.observers.api import BaseObserver, DEFAULT_OBSERVER_TIMEOUT
File "C:\Python33\lib\site-packages\watchdog\observers\api.py", line 62, in <module>
from watchdog.utils.bricks import OrderedSetQueue as SetQueue
File "C:\Python33\lib\site-packages\watchdog\utils\bricks.py", line 112, in <module>
if not sys.version < (2, 6, 0):
TypeError: unorderable types: str() < tuple()
C:\Python33>python C:\folder\test.py
回溯(最近一次呼叫最后一次):
文件“c:\folder\test.py”,第4行,在
从watchdog.Observer导入观察者
文件“C:\Python33\lib\site packages\watchdog\observators\\uuuu init\uuuuu.py”,第34行,
在里面
从watchdog.observators.api导入baseobservator,默认为\u observator\u超时
文件“C:\Python33\lib\site packages\watchdog\observators\api.py”,第62行,在
从watchdog.utils.bricks导入OrderedSetQueue作为SetQueue
文件“C:\Python33\lib\site packages\watchdog\utils\bricks.py”,第112行,在
如果不是系统版本<(2,6,0):
TypeError:无序类型:str()
这看起来像是看门狗中的一个bug。它在Python2.6和2.7中工作
sys.version
是一个字符串,两者兼有,与元组相当。对我来说似乎是个奇怪的想法

此行为可能已随3.x而改变。如果没有用3.x正确测试它,您应该会遇到更多的麻烦。使用Python2.7仍然是最安全的,因为许多库都不支持3.x

无论如何,如果您真的非常想解决这个问题,可以在watchdog\utils\bricks.py中修补第112行:

ver = tuple([int(x) for x in sys.version.split()[0].split('.')])
if not ver < (2, 6, 0):
ver=tuple([int(x)代表sys.version.split()[0].split('.')]))
如果不是版本<(2,6,0):

那真难看。而是使用Python 2.7。

谢谢您的回复,先生,我用Python 2.7尝试了代码,现在它没有显示任何输出。它也没有显示任何输出,以什么形式显示,下面代码的输出显示在哪里?如何更改代码中要监视的目录?您应该查看Python
日志记录
模块和监视程序的文档。