У меня есть код, который с помощью tkinter-а получает входные данные и формирует отчет (резултьтат кода: создается один txt и один xls файл). Код работает, но когда я конвертирую его в exe файл (библиотека pyinstaller) файл создается, но не работает. В чем может быть проблема?
import tkinter as tk
def get_data():
date1 = dateFrom.get()
date2= dateTo.get()
from pathlib import Path
print("Начало даты")
print("Конец даты")
import os
import pandas as pd
mylist=[]
for path in Path().glob('ot-*.log'):
if f'ot-{date1}.log' <= path.name <= f'ot-{date2}.log':
mylist.append(path.name)
import re
from datetime import datetime
with open('final.txt', 'w', encoding='utf-8') as outfile:
for fname in mylist:
file_date = fname.replace('ot-', '').replace('.log', '')
with open(fname, encoding='utf-8') as infile:
for line in infile:
outfile.write(file_date + ' ' + line)
sessions = {}
data = []
with open('final.txt', 'r', encoding='utf-8') as f:
log = f.readlines()
for line in log:
if 'Login successful' in line:
chunks = re.search(r"(.+?) Login successful from user (.+?) from .+ session=(.+?) .+", line)
login_time = datetime.strptime(chunks.group(1), '%Y-%m-%d %I:%M:%S %p')
sessions[chunks.group(3)] = {'login_time': login_time, 'username': chunks.group(2)}
elif 'Closing session' in line:
chunks = re.search(r'(.+?) Closing session.+session=(.+?) .+', line)
logout_time = datetime.strptime(chunks.group(1), '%Y-%m-%d %I:%M:%S %p')
session_id = chunks.group(2)
if session_id not in sessions:
print('Сессия {} закрыта, нет данных о входе'.format(session_id))
else:
login_time = sessions[session_id]['login_time']
username = sessions[session_id]['username']
session_time = logout_time - login_time
#print('Пользователь {} зашел в {}, вышел в {}. Время сеанса- {} . ID сессии- {}'.format(username, login_time, logout_time, session_time, session_id))
data.append([username, login_time,logout_time, session_id, session_time ])
del sessions[session_id]
df = pd.DataFrame(data, columns=['user_name', 'login', 'logout', 'session id', 'session_time' ])
df.to_excel("test.xlsx")
win=tk.Tk()
dateFrom = tk.Entry(win)
dateFrom.grid(row=0,column=1)
dateTo=tk.Entry(win)
dateTo.grid(row=1,column=1)
tk.Button(win, text="Report", command=get_data).grid(row=2,column=1)