2011-10-05 2 views
2

코드는 여러 인수 문자열을 가져 와서 "Split()"로 나누는 것으로 가정합니다. 그것은 그렇게하지만 첫 번째 인수 만 "CheckList()"로 전달합니다. 그래서 "1 2 4"라고 입력하면 CheckList에 "1"이 전달됩니다. 다른 모든 것은 그것이해야하는대로 작동합니다.다른 함수에서 스플릿 인수 사용

import re    

def CheckList(Start): 
    DoIt = 0 
    s = int(Start) 
    End = s + 1 
    End = str(End) 
    for PodCheck in F.readlines(): 

     if re.match('Pod' + End, PodCheck.strip()): 
      DoIt = 0 

     if re.match('Pod' + Start, PodCheck.strip()): 
      DoIt = 1 

     if DoIt == 1: 
      print PodCheck, 

    return 

def Split(P): 
    Pods = P.split() 
    for Pod in Pods: 
     CheckList(Pod) 

    return 

F = open("C:\Users\User\Desktop\IP_List.txt") 

Pod = raw_input('What pod number would you like to check?: ') 
Split(Pod.strip()) 
print 'Done' 
+0

CheckList에서 루프를 변경하지 : 코드의 너무 많이 변경하지 않고 당신이 당신의 파일을 연 후 나는이를 추가 'PodCheck in ... '중에 데이터가 누락 되었습니까? – AlG

+0

그게 바로 내가 오류라고 믿었던 곳입니다. 내가 틀렸어. – iFetus

답변

5

귀하의 문제는 바로 여기에 있습니다 :

for PodCheck in F.readlines(): 

CheckList에 대한 첫 번째 호출은 F의 모든 데이터를 사용합니다. 이후에 Checklist을 호출하면 for 루프가 건너 뜁니다. 읽을 내용이 없기 때문입니다.

따라서 F을 열면 모든 데이터를 읽어야합니다.

F_lines = F.readlines() 

그리고 당신이 첫 번째 인수에 전달하는 것을 알고 어떻게

for PodCheck in F_lines: 
+0

당신은 영웅입니다. 고맙습니다! – iFetus

+0

문제는 당신이 말한 것이 었습니다. 이 문제를 해결하기 위해 CheckList()에서 파일을 열고 닫았습니다. – iFetus