Python For循环内部函数只执行一次

Python For循环内部函数只执行一次,python,function,for-loop,Python,Function,For Loop,我遇到了一个我从未遇到过的问题,我确实从另一个函数多次调用了一个包含for循环的函数,但后者只执行了一次,我不知道我做错了什么 下面是包含for循环的函数 def check_neutre(word): global f4 i = 0 neutre = [] print(word) for ligne in f4: neutre.append(ligne.strip()) print(len(neutre)) return "done" f

我遇到了一个我从未遇到过的问题,我确实从另一个函数多次调用了一个包含for循环的函数,但后者只执行了一次,我不知道我做错了什么

下面是包含for循环的函数

def check_neutre(word):
   global f4
   i = 0
   neutre = []
   print(word)
   for ligne in f4:
      neutre.append(ligne.strip())
   print(len(neutre))
   return "done"
f4是在顶部打开的文件变量

这里是调用它的函数

def check_words(words):
    polarite = 0
    exist = False
    for word in words:
        print(check_neutre(word))

check_words(words)
单词变量是单词列表


上面的输出显示循环只执行一次

我想您是在搜索文件的每一行上的循环,而在代码中您只是一次将其全部循环

您可以在文件开头更改为:

f4\u lines=f4.readlines()
并使用
f4\u行的全局设置
instad of
f4


如果它是一个大文件,可能有另一种解决方案,因为这将在第一次循环
f4
后将文件加载到内存中,文件指针位于末尾,循环永远不会执行。您可以在循环之前尝试
f4.seek(0)
,但是,为什么要为每个单词循环整个文件?为什么不循环一次,然后使用
neutre
列表?@Tomerikoo yes,这就是我计划做的,我将声明一个全局neutre列表并重用它。不要声明全局,将它作为参数传递给函数