2016-06-26 2 views
-1

그래서 내가하려는 것은 아래 코드를 사용하여 .txt 파일을 읽은 다음 if 문에서 사용하는 것입니다. 창은 pyHook의 event.WindowName입니다.Python2.7 파일을 읽고 if에 사용할 경우

try: 
    with open("log.txt") as f: 
     data = f.read().split() 
except: 
    print "Failed.1" 
try: 
    if data in window: 
     #do stuff 

데이터를 [ 'foo', 'bar'] ...로 인쇄합니다. 어떤 아이디어입니까?

C:\Python34\Stuff>Monitor.py 
Traceback (most recent call last): 
    File "C:\Python27\lib\site-packages\pyHook\HookManager.py", line 351, in KeyboardSwitch 
    return func(event) 
    File "C:\Python34\Stuff\Monitor.py", line 53, in OnKeyboardEvent 
    if data in window: 
TypeError: 'in <string>' requires string as left operand, not list 
+3

'창'이란 무엇입니까? 'data' 란 무엇입니까?'print' 문은 어디에서 오는 것입니까? – ppperry

+0

이것은 좋은 질문입니다. Failed.1을 제외하고 코드가 인쇄하는 방법은 없습니다. 관련 코드 모두 표시 –

+0

window는 pyHook의 event.WindowName입니다. 데이터는 파일 내에서 읽혀진 것이고, print 문은 파일이 존재하지 않는 경우에만 발생합니다. 그리고 이것은 내 질문에 관련된 모든 코드입니다. –

답변

0

첫째, 당신이 할 때

data = f.read().split() 

당신은 라인의 목록을 가져옵니다. 목록이 필요하면 split()을 사용하십시오. 어쩌면

, 시도 : 당신은 그냥 읽으려고하면 그러나 파일 내용은

UPD (예를 들어, IO 오류) 예외 유형의 설명없이 except를 사용하지 않는, 둘째

with open('log.txt') as f: 
    for line in f: 
     print(line) 

를 사용 다음과 같이 :

with open("log.txt") as f: 
     data = f.read().split() 
     for line in data: 
      line = line.strip() 
      if line in window: 
       # do your processing 
+0

창이 pyhook의 event.WindowName이고 except가 내가 추가 한 바깥에 있습니다. 죄송합니다. –

+0

@BenSmith하지만 'in' 키워드를 이벤트와 함께 어떻게 사용할 수 있습니까? – Absolut

+0

나는 event.WindowName이 내가 속한 페이지의 문자열을 반환한다고 믿기 때문에. Log.txt에 단 한 단어 만 있으면 작동하지만, 여러 개가 있다면 ... –

관련 문제