You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tkinter调用导入的qwerty函数写Excel缺失参数且数据无法录入求助

问题排查与修复方案

核心报错原因

你触发的TypeError: qwerty() missing 1 required positional argument: 'list'报错是在导入模块阶段触发,不是运行到逻辑代码时触发,说明你的exlsx.py文件顶层有多余的qwerty()无参调用代码,导入模块时会直接执行顶层代码导致报错。

全部需修复的问题点

  • 问题1:exlsx.py存在多余的顶层qwerty()调用,删除该行即可解决导入报错
  • 问题2:所有Entry组件未绑定对应的StringVar变量,导致.get()永远获取空值,需要给每个Entry增加textvariable参数关联对应的StringVar
  • 问题3:登录逻辑的qwe函数调用qwerty时传参格式错误,qwerty仅接收1个列表参数,你传了2个独立参数,需要将参数封装为列表后传入
  • 问题4:qwerty函数存在逻辑缺陷:每次调用都会覆盖原有Excel文件,且内部循环会重复写入6次相同数据
  • 问题5:传递给qwerty的列表长度需要和表头8个字段对齐,否则写入会错位

修复后代码

exlsx.py 代码

from openpyxl import Workbook, load_workbook
import os

def qwerty(data_list):
    # 补全列表到8个字段长度,对应表头
    if len(data_list) < 8:
        data_list += [""]*(8 - len(data_list))
    file_path = 'scamdeaa.xlsx'
    # 判断文件是否存在,存在就打开追加,不存在就新建写表头
    if os.path.exists(file_path):
        Wors = load_workbook(file_path)
        Worc = Wors['Scam data']
    else:
        Wors = Workbook()
        Worc = Wors.create_sheet('Scam data')
        # 写表头
        heaf = ['Username', 'Password','Name', "Mobile", 'Scammed Number of People', 'Total Scammed Amount', 'Email', 'Location']
        Worc.append(heaf)
    # 写入数据
    Worc.append(tuple(data_list))
    Wors.save(file_path)

主程序核心修改部分

  1. 所有Entry绑定StringVar示例(全量Entry都要按这个规则改)
# 注册页用户名Entry修改示例
userlvalue = StringVar()
Useprid = Entry(RRoot, width=50, textvariable=userlvalue)
Useprid.pack(anchor=N)

# 注册页密码Entry修改示例
passvalue = StringVar()
Usewrid = Entry(RRoot, width=50, textvariable=passvalue)
Usewrid.pack(anchor=N)
Usewrid.config(show='@')

# 其余姓名、手机、邮箱、城市对应的Entry都按上述规则绑定自己的StringVar
# 登录页的两个Entry也要对应绑定uservalue和Passvalue
  1. qwe函数修改
def qwe():
    s = uservalue.get()
    blow = Passvalue.get()
    # 封装为列表传入,剩余字段留空后续补充
    qwerty([s, blow])

内容的提问来源于stack exchange,提问作者PRANSHUCODER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 12:45:03