実現したいこと
pythonのwatchdogで更新されたcsvファイルのパスを取得したいと考えています。
具体的には、得たパスをほかの関数に用いるためwatchdogで取得したパスをreturnで返す必要があります。
しかし、watchdogでどのようにパスを取得すればよいかわかりません。
パス自体は下のコードにあるようにevent.src_path
を用いればよいことは把握しております。
python自体学びたての初心者ですのでわからない点が多いですが、教えていただけると幸いです。
該当のソースコード
python
1import time 2from argparse import ArgumentParser 3 4from watchdog.events import PatternMatchingEventHandler 5from watchdog.observers import Observer 6 7 8 9def main(): 10 """メイン関数""" 11 # ===== ArgumentParserの設定 12 parser = ArgumentParser(description="Monitoring Tool") 13 # 引数の処理 14 parser.add_argument("-p", "--path", action="store", dest="path", help="監視対象パス") 15 # コマンドライン引数のパース 16 args = parser.parse_args() 17 # 引数の取得 18 path = args.path 19 # pathの指定がない場合は実行ディレクトリに設定 20 if path is None: 21 path = "." 22 23 # モニター実行 24 # monitor(path) 25 26 patterns = ['*.csv'] 27 event_handler = PatternMatchingEventHandler(patterns) 28 29 def on_created(event): 30 filepath = event.src_path 31 # filename = os.path.basename(filepath) 32 # print("%s is created"%filename) 33 print(event) 34 print(filepath) 35 36 37 event_handler.on_created = on_created 38 39 observer = Observer() 40 observer.schedule(event_handler, path, recursive=True) 41 observer.start() 42 try: 43 while True: 44 time.sleep(1) 45 except KeyboardInterrupt: 46 observer.stop() 47 observer.join()
回答3件
あなたの回答
tips
プレビュー