<pre><code>def findLineParam(sprotParam, pos):
if line[:2] == sprotParam:
start = pos
while line[start] == " ":
start += 1
stop = start + 1
while stop < len(line) and not line[stop] in (" ", ";"):
stop += 1
print(line[start:stop]) # prints the correct value!
return line[start:stop] # returns None?
</code></pre>
<p>简要说明代码的功能是,它应该输入一个字符串(关键字),例如“ID”,并在文本文件的一行中找到它,然后它应该在空白读取到下一个“”或“;”后找到第一个值并返回这个值。我可以看到,当我打印行时,它返回的正是我想要的,但当我返回它时,它返回“无”。你知道吗</p>
<p>每当我将“sprotParam”改为一个输入列表(*sprotParam)时,它会返回值,但也会返回与文件中的行相对应的相等数量的“None”,我相信这表明它会在所有行上迭代并执行操作,而这是不应该的</p>
<p>调用函数的代码</p>
<pre><code>try:
file = input("Enter filename: ")
except IOError as e:
print("That is not a recognised filename. Error given: " + str(e))
sys.exit(1) # Close the program
with open(file, 'r') as infile:
for line in infile:
ident = findLineParam("ID", 2)
</code></pre>