pythonのwatchdogでパス名を取得したい
解決したいこと
watchdogを用いてcsvファイルを監視、作成時にそのファイルのパスを取得する関数を作製したいです。
おそらくdef created
内をいじればよいとは考えているのですが、event
が何かわからず困っています。
def on_created(event):
filepath = event.src_path
print(filepath)
return filepath
としても、どのようにreturnを受け取ればよいかわかりません。
初心者のため、わからないことだらけですが返答を頂けると嬉しいです。
作製したコード
コード
import time
import os
from argparse import ArgumentParser
from watchdog.events import PatternMatchingEventHandler
from watchdog.observers import Observer
def main():
"""メイン関数"""
# ===== ArgumentParserの設定
parser = ArgumentParser(description="Monitoring Tool")
# 引数の処理
parser.add_argument("-p", "--path", action="store", dest="path", help="監視対象パス")
# コマンドライン引数のパース
args = parser.parse_args()
# 引数の取得
path = args.path
# pathの指定がない場合は実行ディレクトリに設定
if path is None:
path = "."
# モニター実行
# monitor(path)
patterns = ['*.csv']
event_handler = PatternMatchingEventHandler(patterns)
def on_created(event):
filepath = event.src_path
# filename = os.path.basename(filepath)
# print("%s is created"%filename)
print(filepath)
event_handler.on_created = on_created
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
0 likes