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

Python处理剪贴板文本遇格式问题:如何拆分Pygame中粘贴的字符串

处理多行文本拆分时的乱码与拆分失败问题

原始数据格式

00x0x00 1
10x1x11 2
13x2x27 6

问题说明

已实现将上述多行数据复制粘贴到终端或Pygame窗口,但无法拆分每行中的两部分内容(如拆分00x0x00和1)。尝试过str.split()方法、将空格替换为逗号后拆分、按'\n'拆分,均未成功,输出结果出现含\x00的乱码。

相关代码

# 此处为用户提供的相关代码片段

错误输出

# 此处为用户提供的输出内容

完整代码

# 此处为用户提供的完整代码

解决方案

问题根源

\x00是ASCII空字符,说明粘贴的文本混入了不可见的空控制字符,大概率是复制来源的格式问题(如编辑器隐藏字符)或粘贴过程中的编码异常导致额外字符插入。

具体处理步骤

  • 先清理空字符:在拆分前过滤掉所有\x00字符,再执行拆分逻辑
    # 假设raw_input是你获取到的粘贴文本
    cleaned_input = raw_input.replace('\x00', '')
    # 按行拆分并过滤空行
    lines = [line.strip() for line in cleaned_input.split('\n') if line.strip()]
    # 拆分每行的两部分内容,maxsplit=1确保只按第一个空格拆分
    parsed_data = [line.split(maxsplit=1) for line in lines]
    print(parsed_data)
    
  • 排查隐藏字符:如果清理后仍有问题,用repr()打印文本,查看所有转义字符,确认是否还有其他控制字符:
    print(repr(cleaned_input))
    
  • Pygame输入额外处理:如果是从Pygame窗口获取输入,检查事件处理逻辑,确保只拼接有效可见字符,避免引入空字符:
    import pygame
    
    pygame.init()
    screen = pygame.display.set_mode((400, 300))
    input_text = ""
    
    running = True
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_RETURN:
                    # 处理输入文本
                    cleaned_text = input_text.replace('\x00', '')
                    print([line.split() for line in cleaned_text.split('\n') if line.strip()])
                    input_text = ""
                elif event.key == pygame.K_BACKSPACE:
                    input_text = input_text[:-1]
                else:
                    # 仅添加可见字符,过滤控制字符
                    if event.unicode:
                        input_text += event.unicode
    
        screen.fill((255,255,255))
        pygame.display.flip()
    
    pygame.quit()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:50:12