I am going to paste my entire code so that you can understand everything you need to know, even though I understand that you probably don't need it all. I am also going to warn you that I am very new to programming so I am probably very inefficient with my code and very messy and I apologize for that! If you see anything else I need to fix I would appreciate it.
Summary of program goal: Read a file for a 3-letter word, ask me if the word is a 3-letter word for verification before inserting it into a text document with a list of its (known) 3-letter words. (In order to do that it needs to define each character of the 3-letter word found.(?))
# wdf - word functions
import sys
import time
import re
import copy
import string
from string import ascii_lowercase
from random import *
def is_three_letters(word): # code from ChristianFigueroa @ stackoverflow.com
    return bool(re.match(r"[a-zA-Z/d]{3}$", word))
def i_otpt():
    f = open("output.txt", "a")
    f.write("\n")
    f.write("\n")
    f.write(">-------------------------------<")
    f.write("\n")
    f.write("\n")
    f.write(time.asctime(time.localtime(time.time())))
    f.write("\n")
    f.write("----N-E-W--O-U-T-P-U-T--L-O-G----")
    f.write("\n")
    f.write("\n")
    f.close()
def o_otpt():
    f = open("output.txt", "a")
    f.write("\n")
    f.write("----E-N-D--O-U-T-P-U-T--L-O-G----")
    f.close()
def otpt(tx):
    f = open("output.txt", "a")
    f.write(str(tx))
    f.write("\n")
    f.close()
def otpt2(tx, tx2):
    f = open("output.txt", "a")
    f.write(str(tx))
    f.write(" ")
    f.write(str(tx2))
    f.write("\n")
    f.close()
def otpt3(tx, tx2, tx3):
    file = open("output.txt", "a")
    file.write(str(tx))
    file.write(" ")
    file.write(str(tx2))
    file.write(" ")
    file.write(str(tx3))
    file.write("\n")
    file.close()
def wd_sc_3(name_of_file):
    with open(name_of_file + ".txt") as f:
        lines = f.readlines()
        wdl = []
        x = 0
        for line in lines:
            words = [word for word in line.split() if len(word) == 3 and all(ch in ascii_lowercase for ch in word)]
            x += 1
            if x % 2 == 1:
                wdl.append(words)
            l = 0
            lx = wdl[l][0]
            dvd = dict(enumerate(lx, 1))
            l1 = dvd[0]
            l2 = dvd[1]
            l3 = dvd[2]
            word3(l1, l2, l3)
            l += 1
        f.close()
        v = len(wdl)
        print("Found ", v, " words")
        n = 0
        file = open("read3.txt", "a")
        file.write("\n")
        while True:
            file.write((wdl[n][0]))
            file.write("\n")
            n += 1
            if n >= v:
                break
def word3(a, b, c):  # Defines a 3 letter word and prints it as one word
    wd3 = (a + b + c)
    i_otpt()
    sys.stdout.write("Word check: ")
    otpt2("Word check: ", wd3)
    for var in a:
        sys.stdout.write(var)
        sys.stdout.flush()
    for var in b:
        sys.stdout.write(var)
        sys.stdout.flush()
    for var in c:
        sys.stdout.write(var)
        sys.stdout.flush()
        sys.stdout.write("\n")
    sd1 = 0
    slx = 0
    file = open("list_of_words_3.txt", "r")
    otpt("\nWord 3 file opened to read.")
    while slx <= 250:
        file.readline(slx)
        for line in file:
            otpt2(" -Reading line", (int(slx) + 1))
            if wd3 in line:
                sd1 = 1
                file.close()
                print("(-)Word already stored", "\n")
                otpt("Word already stored")
                otpt("Word 3 file closed.")
                break
            elif not line.strip():
                otpt("   -Empty")
                continue
            elif wd3 not in line:
                slx += 1
                continue
            elif slx == 250:
                file.close()
                otpt("Word 3 file full")
                otpt("Word 3 file closed.")
                break
            else:
                print("Something went wrong.")
                otpt("Something went wrong. (1)")
                break
        slx = 251
        break
    file.close()
    otpt("Word 3 file closed.")
    if slx == 251:
        file = open("list_of_words_3.txt", "a")
        otpt("Word 3 file opened to add word.")
        if sd1 == 0:
            print("Is ", wd3, " a word?")
            ans = input("---> ")
            if ans == "yes":
                file.write(wd3)
                otpt3("Word ", wd3, " added to file.")
                file.write(",\n")
                otpt("Word 3 file closed.")
                file.close()
                sys.stdout.write("(+)New word added: ")
                sys.stdout.write(wd3)
                sys.stdout.write("!")
                otpt3("New word added: ", wd3, "!")
                file.close()
            if ans == "no":
                print("Okay, registering ", wd3, " as not a word")
                file.close()
                otpt("Opening not a word 3 file")
                file = open("list_of_not_words_3.txt", "r")
                sly = 0
                sd2 = 0
                while sly <= 250:
                    file.readline(sly)
                    for line in file:
                        otpt2(" -Reading line", (int(sly) + 1))
                        if wd3 in line:
                            sd2 = 1
                            file.close()
                            otpt("Word already stored")
                            otpt("Not a word 3 file closed.")
                            break
                        elif not line.strip():
                            otpt("   -Empty")
                            continue
                        elif wd3 not in line:
                            sly += 1
                            continue
                        elif sly == 250:
                            file.close()
                            otpt("Not a 3 word file full")
                            otpt("Not a 3 word file closed.")
                            break
                        else:
                            print("Something went wrong.")
                            otpt("Something went wrong. (2)")
                            break
                    sly = 251
                    break
                file.close()
                otpt("Not a 3 word file closed.")
                if sly == 251:
                    file = open("list_of_not_words_3.txt", "a")
                    otpt("Not a 3 word file opened to add word.")
                    if sd2 == 0:
                        if ans == "yes":
                            file.write(wd3)
                            otpt3("Word ", wd3, " added to file.")
                            file.write(",\n")
                            otpt("Not a word 3 file closed.")
                            file.close()
                            otpt3("New word added: ", wd3, "!")
                            file.close()
                    if sd2 == 1:
                        otpt("No need to add word")
                else:
                    otpt("No word added")
        if sd1 == 1:
            otpt("No need to add word")
    else:
        print("No word added.")
        otpt("No word added")
wd_sc_3("test")
Error:
Traceback (most recent call last):
Found  65  words
  File "/Users/ethanmcrae/PycharmProjects/AI/wdf.py", line 222, in <module>
    wd_sc_3("test")
  File "/Users/ethanmcrae/PycharmProjects/AI/wdf.py", line 90, in wd_sc_3
    file.write((wdl[n][0]))
IndexError: list index out of range
Process finished with exit code 1
I realize this problem will probably consume a decent amount of time to fix, so I understand if this takes some time to get resolved.
 
     
    