Помогите ! Pandas + Tkinter

Рейтинг: 1Ответов: 1Опубликовано: 17.01.2023

В общем и целом! Сделал прогу, ищет по ИИН в EXCEL файле и выводит данные по человеку(всю строку). Создал окно(Text) с помощью TKinter куда выводит данные по гостю. Но не выводит полностью...

from tkinter import *
from tkinter import messagebox
import pandas as pd
from pathlib import Path

path = Path(excel.xlsx)


def clicked():
search_text = txt.get()

for file in path.glob("*.xls*"):
    df = pd.read_excel(file, header=None)
    df_find = df[df.apply(lambda row: row.astype(str).str.contains(search_text).any(),axis=1)]

    if not df_find.empty:
        messagebox.showinfo("Вход запрещён!", "ИИН - {} найден!".format(search_text))
        info_iin.insert(1.0, df_find[0])
        info_name.insert(1.0, df_find[1])
        try:
            info_time.insert(1.0, df_find[2])
        except KeyError:
            info_time.insert(1.0, 'Пусто')
        try:
            info_year.insert(1.0, df_find[3]) #этот код вставляет с 4 столба инфу по челу
        except KeyError:
            info_year.insert(1.0, 'Пусто')
        break

if df_find.empty:
    messagebox.showinfo("Можно войти!", "ИИН - {} отсутствует!".format(search_text))
    info_iin.insert(1.0, '\n')
    info_name.insert(1.0, '\n')
    info_time.insert(1.0, '\n')
    info_year.insert(1.0, '\n')

window = Tk()
window.title("Поиск по ИИН")
window.geometry('580x180')

lbl = Label(window, text='Введите ИИН: ', font=("Arial Bold", 15))
lbl.place(x=0, y=0)

info_iin = Text(width=70, height=1)
info_iin.place(x=6, y=33)

info_name = Text(width=70, height=1)
info_name.place(x=6, y=60)

info_time = Text(width=70, height=1)
info_time.place(x=6, y=88)

info_year = Text(width=70, height=1, wrap=None) #в это окошко выходит инфа по человеку с 4 
столбца
info_year.place(x=6, y=115)

txt = Entry(window, width=20)
txt.place(x=140, y=6)
txt.focus()

btn = Button(window, text='Поиск', command=clicked)
btn.place(x=270, y=3)

window.mainloop()

Ответы

▲ 1

Сам нашёл ответ на свой вопрос) Дело было в настройках Pandas, стояло ограничение на вывод символов в строке. Решил проблему таким методом:

# Сброс ограничений на количество символов в записи
pd.set_option('display.max_colwidth', None)