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

如何从PySimpleGUI多行输入框中提取每行内容?

解决PySimpleGUI多行输入框提取邮箱的问题

你的问题出在直接遍历values['-Input-']返回的字符串——这样会逐个遍历每个字符,而不是每行的邮箱。要正确提取每行的邮箱,按以下步骤修改:

关键修改点

  • 按行分割输入内容:用字符串的splitlines()方法,把多行输入拆成每行一个元素的列表。
  • 过滤空行:避免处理用户不小心输入的空行。
  • 把邮箱作为参数传给处理函数:你的DeleteAccounts()需要知道要处理哪个邮箱,所以要把邮箱传进去。

修改后的代码片段

while True:
    event, values = window.read()
    if event == '-DEL-':
        deleteCheck = sg.popup_yes_no('Are you sure you want to delete these accounts?')
        if deleteCheck == 'Yes':
            # 按行分割输入内容,得到邮箱列表
            email_list = values['-Input-'].splitlines()
            # 过滤掉空行和前后带空白的无效内容
            email_list = [email.strip() for email in email_list if email.strip()]
            # 遍历每个邮箱并处理
            for email in email_list:
                DeleteAccounts(email)
        else:
            break
    # 补充窗口关闭的处理逻辑
    elif event == sg.WIN_CLOSED:
        break

补充说明

  • splitlines()会自动识别不同系统的换行符(Windows的\r\n或Linux/macOS的\n),不用手动处理。
  • email.strip()用来去掉邮箱前后的空格、制表符等空白字符,避免无效的邮箱格式。
  • 你需要修改DeleteAccounts函数的定义,让它接受一个邮箱参数,示例如下:
def DeleteAccounts(email):
    # 这里编写处理单个邮箱的逻辑,比如调用网站接口修改账户
    print(f"正在处理邮箱: {email}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:32:08