Python 在其他函数中使用拆分参数

Python 在其他函数中使用拆分参数,python,for-loop,split,Python,For Loop,Split,假设该代码接受一个包含多个参数的字符串,并使用“split()”将其拆分。它确实这样做了,但它只将第一个参数传递给“CheckList()”。所以,如果我输入“1 2 4”,它只会将“1”传递给检查表。其他一切都正常工作 import re def CheckList(Start): DoIt = 0 s = int(Start) End = s + 1 End = str(End) for PodCheck in F.readl

假设该代码接受一个包含多个参数的字符串,并使用“split()”将其拆分。它确实这样做了,但它只将第一个参数传递给“CheckList()”。所以,如果我输入“1 2 4”,它只会将“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'

你的问题就在这里:

for PodCheck in F.readlines():
第一次调用
检查表
将使用
F
中的所有数据。对
Checklist
的后续调用跳过
for
循环,因为没有剩余内容可阅读

因此,在打开
F
之后,您应该读取它的所有数据。在不改变太多代码的情况下,我会在打开文件后添加以下内容:

F_lines = F.readlines()
并更改为在
检查表中循环

for PodCheck in F_lines:

你是个英雄,先生。非常感谢。问题是你说了什么。为了修复它,我在CheckList()中打开并关闭了该文件。您如何知道它只是传入了第一个参数,而不是在PodCheck in的
过程中丢失了数据…
?这正是我认为的错误所在。结果证明我大错特错了。