2017-02-19 3 views
0

現在、特定のディレクトリ内の特定のファイルを監視するコードを作成しようとしています。ファイルが更新されると、更新され、パーソナライズされた応答を出力します。Pythonで2つのコードをリンクする

ファイルを見るには、私はウォッチドッグを使用しており、それ自体は正常に動作します。ファイルから読み込むために、テキストファイル内の数値を読み取ってif-elif-elseステートメントを使用して目的の出力を得るようにする簡単なコードを記述しました。しかし、私は2つのコードを一緒にリンクすることに苦労しています。つまり、wathdogスクリプトがファイルを見て、ウォッチドッグが探していたファイルを読み込んで次のコード部分をトリガーして、望ましい出力を出すようにします。

私は本当に立ち往生しています、誰かが私を助けることができるでしょうか?

EDIT:

import time 
from watchdog.observers import Observer 
from watchdog.event import FileSystemEventHandler 

class Myhandler(FileSystemEventHandler): 
     def on_modified(self, event): 
     print("Got it!") 

if __name__== "__main__": 
    event_handler = MyHandler() 
    observer = Observer() 
    observer.schedule(event_handler, path = 'My path here', recursive=False) 

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

それが更新されたときのために、ファイルを監視し、私のウォッチドッグ・コードです。

f=open("MyFile.txt", encoding='utf-8-sig') 
g=f.read() 
print(g) 
num=int(g) 
if num = 10: 
    r = open("Response.txt", "w") 
    r.write("Bla") 
    r.close() 
elif num = 20 
    r = open("Response.txt", "w") 
    r.write("Bla") 
    r.close() 

その他のオプションもあります。この2番目の部分は、監視されているファイルに書き込まれている内容に基づいて新しいテキストファイルを書き込む部分です。

私がしたいのは、ウォッチドッグ(コードの最初の部分)がファイルを見て、それが更新されたら、そのファイルから読み込み、指定された出力を与えるコードの第2部分をトリガーしますコードの)私はちょうど2つをリンクする方法を理解できません!私は最初のコードの 'if'セクションにコードの2番目の部分を入れましたが、うまくいきませんでした。

+1

あなたがまとめようとしているものの最小限の検証可能なサンプルコードを提供してください。 – Brian

+0

なぜコードを 'on_modified'に入れないのですか? –

+0

どこを正確に渡すのですか?それは自己、イベントを置き換えるか、別の議論として追加するか? –

答えて

0

このようなことはできませんか?

import time 
while True: 
    Text=open('MyFile.txt','r') 
    fileText=Text.read() 
    Text.close() 
    newText=fileText 
    while fileText==newText: 
     time.sleep(5) 
     Text=open('MyFile.txt','r') 
     newText=Text.read() 
     Text.close() 
    f=open("MyFile.txt", encoding='utf-8-sig') 
    g=f.read() 
    print(g) 
    num=int(g) 
    if num == 10: 
     r = open("Response.txt", "w") 
     r.write("Bla") 
     r.close() 
    elif num == 20: 
     r = open("Response.txt", "w") 
     r.write("Bla") 
     r.close() 
+0

たぶん元のテキストの代わりに何を入れますか?私はoriginalTextでそれを実行すると、また、私は –

+0

から読んでいるtxtファイルの名前を入れたときにエラーメッセージが表示されます。それは間違いです。私はそれを編集します。 – Phonzi

+0

まだうまくいかないようです。私はファイルに書き込んで更新しますが、次の部分に進むことはありません。 –

関連する問題