После большого количества (пробных) и видео с ошибками и случайных видео на YouTube, решение: (если у кого-то есть подобная проблема)
with open("table.csv", "r", newline="") as setFile:
cardList = list(csv.reader(setFile))
setFile.close()
print("+------------------------------------------------------------------------------+")
print("| Term | Definition |")
print("+------------------------------------------------------------------------------+")
print()
for x in range(len(cardList)):
wrapped_term = textwrap.wrap(cardList[x][0], 30)
wrapped_definition = textwrap.wrap(cardList[x][1], 30)
wrapped_list = []
for i in range(len(wrapped_term)):
try:
wrapped_list.append([wrapped_term[i], wrapped_definition[i]])
except IndexError:
if len(wrapped_term) > len(wrapped_definition):
wrapped_list.append([wrapped_term[i], ""])
elif len(wrapped_term) < len(wrapped_definition):
wrapped_list.append(["", wrapped_definition[i]])
column1 = len(" Term ")
column2 = len(" Definition ")
print("+--------------------------------------+---------------------------------------+")
for item in wrapped_list:
print("|", item[0], " "*(column1 - len(item[0])),"|", item[1], " "*(column2-len(item[1])), "|")
print("+--------------------------------------+---------------------------------------+")
print("* *")
По сути, я создал упакованную версию каждого из моих условий иопределения.
Затем программа try-catch проверяет, является ли термин длиннее определения (в терминах строк) и, если это так, ставит пустые строки для определения и наоборот.
Затем я создал упакованный список (объединенные термины и определения), чтобы сохранить это выше.
С помощью этого видео: (https://www.youtube.com/watch?v=B9BRuhqEb2Q), Я отформатировал таблицу.
Надеюсь, что это помогло любому, кто борется с подобной проблемой - это может быть применено к любому количеству столбцов в таблице и к любой длине файла CSV.