在其他函数中使用Split参数

iFe*_*tus 2 python split for-loop

代码假设采用多个参数的字符串并用"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'
Run Code Online (Sandbox Code Playgroud)

Ste*_*ski 5

你的问题就在这里:

for PodCheck in F.readlines():
Run Code Online (Sandbox Code Playgroud)

第一次CheckList使用中的所有数据F.后续调用Checklist跳过for循环,因为没有什么可读的.

所以在打开之后F你应该阅读它的所有数据.在不更改过多代码的情况下,我会在您打开文件后添加此代码:

F_lines = F.readlines()
Run Code Online (Sandbox Code Playgroud)

并更改循环中CheckList

for PodCheck in F_lines:
Run Code Online (Sandbox Code Playgroud)