Использование аргументов Split в других функциях - PullRequest
2 голосов
/ 05 октября 2011

Предполагается, что код принимает строку из нескольких аргументов и разделяет их с помощью «Split ()».Он делает это, но передает только первый аргумент в «CheckList ()».Так что, если я наберу «1 2 4», он передаст только «1» в CheckList.Все остальное работает как надо.

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'

1 Ответ

5 голосов
/ 05 октября 2011

Ваша проблема прямо здесь:

for PodCheck in F.readlines():

При первом вызове CheckList используются все данные в F. Последующие вызовы Checklist пропускают цикл for, потому что читать нечего.

Итак, после открытия F вы должны прочитать все его данные. Не меняя слишком много вашего кода, я бы добавил это после того, как вы откроете свой файл:

F_lines = F.readlines()

И изменить на цикл в CheckList на

for PodCheck in F_lines:
...