刚学Python,尝试写一个学生信息管理系统,在pycharm运行无误,打包后运行,结果不能生成xslx文件了,请问各位怎么解决!

from openpyxl import Workbook
def toexcel():
    wb = Workbook()
    ws = wb.active
    ws.title = 'students'
    with open('student.txt', 'r', encoding='UTF-8') as rfile:
        students = rfile.readlines()
    d = {}
    student_list = []
    for i in students:
        d = dict(eval(i))
        student_list.append(d)
    title = ['ID', '姓名', '语文成绩', '数学成绩', '英语成绩', '总成绩']
    ws.append(title)
    for s in student_list:
        ws.append([int(s['id']), s['name'], s['chinese'], s['math'], s['english'],
                   float(s['chinese']) + float(s['math']) + float(s['english'])])
    for col in ['A', 'B', 'C', 'D', 'E', 'F']:  # 设置列宽
        ws.column_dimensions[col].width = 15
    for row in range(len(students) + 2):  # 设置行高
        ws.row_dimensions[row].height = 20
    for column in ws:
        for cell in column:
            cell.font = Font(name='Times New Roman', size=16)  # 字体
            cell.alignment = Alignment(horizontal='center', vertical='center')  # 对齐
    wb.save("student.xlsx")  # 保存

上面是写的保存数据到Excel的函数,在pycharm可以正常生成xslx文件,打包后运行.exe,无法生成xslx文件了。

在打包之前,要先将代码中要读取和保存的文件,指定在一个文件夹,在with open语句中写上该文件夹䠘径,可以用绝对路径。

你用什么打包?(我建议用cx_freeze)
我不理解无法生成xslx文件是什么意思,是直接报错吗?还是只是运行了没有反应,你也可以试一下在python自带的编辑器里运行这段代码看是否会报错,如果不报错那就说明是打包的问题,你需要换一种打包方式