2017-02-19 1 views
0

현재 특정 디렉토리의 특정 파일을 감시하는 코드를 작성하려고합니다. 파일이 업데이트되면 내 업데이트 프로그램에서 업데이트 된 파일을 읽습니다. 개인화 된 응답을 출력합니다.Python에서 두 조각의 코드를 연결합니다.

파일을 보려면 워치 독을 사용하고 그 자체로 정상적으로 작동합니다. 파일에서 읽으려면 텍스트 파일의 번호를 읽도록 코드를 작성한 다음 if-elif-else 문을 사용하여 원하는 결과를 얻습니다. 그러나 wathdog 스크립트가 파일을보고 싶을 때 watchdog 파일을 읽는 코드의 다음 부분을 업데이트하여 원하는 결과를 얻으려는 경우 2 가지 코드를 함께 연결하는 데 어려움을 겪습니다.

나는 정말 붙어있어, 누가 나를 도울 수 있을까?

편집 :

가 업데이트 될 때의 파일을 시계 내 감시 코드의
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() 

기타 모든 옵션이 있습니다. 이 두 번째 부분은 시청중인 파일에 기록 된 내용을 기반으로 새 텍스트 파일을 작성하는 부분입니다.

내가하고 싶은 것은 watchdog (코드의 첫 번째 부분)을보고 파일을보고 나서 업데이트 될 때 코드의 두 번째 부분을 트리거하여 해당 파일을 읽고 지정된 출력을 내 보냅니다 (두 번째 부분 코드의) 나는 단지 두 가지를 연결하는 방법을 알아낼 수 없다! 비록 첫 번째 코드의 'if'섹션에 코드의 두 번째 부분을 넣었지만 작동하지 않았습니다.

+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로 실행할 때 오류 메시지가 나타나고 읽는 txt 파일의 이름을 넣을 때 –

+0

죄송합니다. 이는 실수입니다. 나는 그것을 편집 할 것이다. – Phonzi

+0

흠 아직도 작동하지 않는 것 같습니다. 파일에 쓰고 업데이트하지만 다음 부분으로 넘어 가지 않습니다. –

관련 문제