我有一个包含11行的文件。我正在编写一个函数,它将跳过包含“XYZ”的行,并返回文件中其余行的第一列和第二列。当我运行模块时,它会跳过“XYZ”行,但只返回剩下的第一行。
Comment
奇怪的是,当我在解释器中测试def popdict(my_file):
for line in my_file:
if "XYZ" in line:
pass
else:
x = line.split()
a = x[1]
b = x[0]
d[a] = b
return d
循环时(即,我不将其作为模块导入),它会产生正确的行。
有什么想法吗?
答案 0 :(得分:0)
第一次找到没有“XYZ”的线时,从外部函数返回。如果您想等到文件结束,请从循环中删除 return 语句:
def read_to_dict():
for line in my_file:
if "XYZ" not in line:
x = line.split()
a = x[1]
b = x[0]
d[a] = b
return d
答案 1 :(得分:0)
在完成文件循环之后你应该return
:
def popdict(my_file):
for line in my_file:
if "XYZ" in line:
pass
else:
x = line.split()
a = x[1]
b = x[0]
d[a] = b
return d