该代码假设采用一个包含多个参数的字符串,并使用“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'
最佳答案
您的问题就在这里:
for PodCheck in F.readlines():
第一次调用CheckList
会用完F
中的所有数据。对 Checklist
的后续调用会跳过 for
循环,因为没有任何内容可供读取。
所以打开F
后你应该读取它的所有数据。在不更改太多代码的情况下,我会在打开文件后添加以下内容:
F_lines = F.readlines()
并将 CheckList
中的循环更改为
for PodCheck in F_lines:
关于python - 在其他函数中使用 Split 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7665124/