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

Python Tkinter文本控件插入逗号分隔值时去除末尾多余逗号

问题根因

循环输出集合元素时,对每一项都统一追加了, 后缀,没有区分最后一个元素,必然会在输出末尾多出多余的逗号和空格。另外原代码中全合规场景下的output_display.insert调用漏传了必填的位置索引参数,运行时会抛出异常,一并修复。

修复方案

不需要手动循环拼接字符串,直接使用Python内置的str.join()方法处理分隔拼接逻辑即可:该方法会自动将分隔符插入到可迭代对象的元素之间,不会在首尾添加多余符号,是这类场景的标准实现方式。

修正后的核心函数代码如下:

# function that checks font
def font_name():
    if var1.get() == 1:
        doc = Document(filename)
        font = set()
        invalid_fonts = set()
        VALID_FONT = 'Times New Roman'
        for para in doc.paragraphs:
            if para.style.name == 'Normal':
                for run in para.runs:
                    font.add(run.font.name)
                    if run.font.name != VALID_FONT:
                        invalid_fonts.add(run.font.name)

        if font == {VALID_FONT}:
            # 补全原代码缺失的insert位置参数
            output_display.insert('end', "All paragraphs are written in Times New Roman font.\n")
        else:
            # join自动拼接元素,无末尾多余逗号
            output_display.insert(
                'end',
                f"Paragraph written in unrecognised font(s): {', '.join(invalid_fonts)}\n"
            )

可选优化

集合本身是无序的,如果需要固定的无效字体展示顺序,可以先对集合排序再拼接,写法为', '.join(sorted(invalid_fonts))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 03:01:26