在Python中打开和读取文件的函数出现错误:NameError:未定义名称'xxxx'

问题描述

一切顺利!我有这个项目来检查用户输入的数据是否在文件中。都可以在Jupyter笔记本上使用,但是当我创建函数def时,我不断收到错误消息:NameError:未定义名称'fread'

这是文件夹结构:

main_code
  initial_list
  user_input
  validate_user_input

我认为该问题来自validate_user_input代码

def check_input():
    for line in fread:
        if ui in line.split():
            return line

这是initial_list代码

def initial_list():
    with open('test',mode='r+') as fopen:
        fread=fopen.readlines()
        return fread

这是user_input代码

def user_input():
    ui=input('Enter name here: ')
    return ui

这是main_code代码

from initial_list import initial_list
from user_input import user_input
from validate_user_input import validate_user_input

initial_list.initial_list()
user_input.user_input()
validate_user_input.check_input()

注意:

请帮助,谢谢!

解决方法

将fread变量添加为函数的输入:

def check_input(fread):
  for line in fread:
      if ui in line.split():
          return line

然后,当您运行函数initial_list()时,它应该具有作为另一个输入的fread输入的输出,像这样。

myfread  = initial_list()
check_input(myfread)