Python 将单词添加到列表中

Python 将单词添加到列表中,python,python-3.x,Python,Python 3.x,我试图将不正确的单词附加到列表中,但是当我在函数外部打印列表时,它是空的,当我在函数内部打印列表时,它会为每个单词打印一个列表。如何让列表在程序结束时只打印一次,并且其中包含不正确的单词 文件1: 这是我的拼写检查程序 文件2:dis是我的spll cheker程序 因此,有3个不正确的单词应该添加到列表中 word_list = [] if cmdlength != 2: print ("Usage error, expected 2 args got " + str(cmdleng

我试图将不正确的单词附加到列表中,但是当我在函数外部打印列表时,它是空的,当我在函数内部打印列表时,它会为每个单词打印一个列表。如何让列表在程序结束时只打印一次,并且其中包含不正确的单词

文件1: 这是我的拼写检查程序

文件2:dis是我的spll cheker程序

因此,有3个不正确的单词应该添加到列表中

word_list = []

if cmdlength != 2:
    print ("Usage error, expected 2 args got " + str(cmdlength))
    exit()
else:
    try:
        f = open(sys.argv[1])
        f.close()
    except FileNotFoundError:
        print("File does not exist")
        exit()
    try:
        ff = open(sys.argv[2])
        ff.close()
    except FileNotFoundError:
        print("File does not exist")
        exit()
    word = ""
    with open(sys.argv[1],"r") as fh:
        while True:
            ch=fh.read(1)
            if ch == " " or ch == "\n" or ch == ":" or ch == ".":
                with open(sys.argv[2],"r") as fh2:
                    def check_word(word,fh2,word_list):
                        lines = fh2.readlines()
                        for line in lines:
                            x= re.search(word,line)
                            if x:
                                #correctwords
                                print(word + ": " + "0")
                                #count += 1
                            else:
                                #incorrect words
                                print(word, ": " , "1")
                                word_list.append(word)
                                #count2 += 1
                    check_word(word,fh2,word_list)
                word = ''
            else:
                word += ch
            if not ch:
                print(word)
                print("End of file")
                print(word_list)
                break

函数缺少用于返回单词列表的
return
语句。 这应该行得通

...
def check_word(word,fh2,word_list):
    lines = fh2.readlines()
    for line in lines:
        ...
        word_list.append(word)
        #count2 += 1
    return word_list

word_list = check_word(word,fh2,word_list)

函数缺少用于返回单词列表的
return
语句。 这应该行得通

...
def check_word(word,fh2,word_list):
    lines = fh2.readlines()
    for line in lines:
        ...
        word_list.append(word)
        #count2 += 1
    return word_list

word_list = check_word(word,fh2,word_list)

当你说“在功能之外”时,你指的是什么功能?我在您发布的代码中没有看到任何用户定义的函数,它只是看起来像顶级代码。您的代码是否在未向我们展示的功能块中?这不是一个工作脚本-如果您的脚本是我们可以运行和分析的最小工作脚本,则会有所帮助…您还应向我们提供一个示例文件,以便我们了解我们正在使用的内容,并尝试重新创建脚本problem@JohnL. 该函数在
中定义,其中
块使用文件更新帖子。它运行,只是不是正确的方式。函数位于with块内部,因为打开的文件作为参数传递给该函数。当您说“函数外部”时,您指的是哪个函数?我在您发布的代码中没有看到任何用户定义的函数,它只是看起来像顶级代码。您的代码是否在未向我们展示的功能块中?这不是一个工作脚本-如果您的脚本是我们可以运行和分析的最小工作脚本,则会有所帮助…您还应向我们提供一个示例文件,以便我们了解我们正在使用的内容,并尝试重新创建脚本problem@JohnL. 该函数在
中定义,其中
块使用文件更新帖子。它运行,只是不是正确的方式。函数位于with块内,因为要打开的文件作为参数传递给该函数。