1

我创建了 2 个单独的脚本来抓取、抓取并将结果保存到 csv 文件,并将文件上传到我手动运行的保管箱。现在我想要的是在执行附加操作时监视 csv 文件,然后在附加操作结束后上传文件。任何人都可以给我一些想法或例子来做到这一点,因为我是新手。我看到了一个名为watchdog的包,但不知道如何使用它。

4

2 回答 2

3

watchdog使用起来真的很简单。我在这里编写了示例代码,它将监视您*.csv文件的更改。在使用它之前设置你的路径......一个简单的./也可以:

import time

from watchdog.observers import Observer
from watchdog.events import PatternMatchingEventHandler

class ChangeHandler(PatternMatchingEventHandler):
    patterns = ["*.csv"] # Only handle csv files

    def __init__(self):
        super(ChangeHandler, self).__init__()

    def process(self, event):
        '''
        event.event_type: The type of the event as a string.
        event.src_path: Source path of the file system object
                that triggered this event
        event.is_directory: True if event was emitted for
                a directory; False otherwise.
        '''
        print event.event_type
        print event.src_path
        print event.is_directory
        # DO UPLOAD HERE

    def on_modified(self, event):
        self.process(event)

    def on_created(self, event):
        self.process(event)

    def on_deleted(self, event):
        '''
        file is deleted, maybe do some other operations?
        '''
        pass

if __name__ == '__main__':
    observer = Observer()
    observer.schedule(ChangeHandler(), path='your_csv_folder_path_here',
                      recursive=True)
    observer.start()
    while True:
        time.sleep(1)
于 2014-04-20T07:27:25.123 回答
0

您可以探索Pynotify。虽然我没有亲自使用过。

于 2014-04-20T07:28:24.870 回答