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

使用csv.writer生成Django代码文件时如何避免出现双空格问题

问题根源

你出现多余双空格的核心原因是:你将csv.writer的delimiter设为了空格,同时escapechar也设为了空格。当csv模块检测到内容中出现分隔符(也就是空格)时,会自动在前面加escapechar转义,就导致原有单空格变成了双空格。

解决方案

方案1:保留csv配置的前提下修改参数

因为你每次调用writerow仅传入只有1个元素的列表,delimiter不会被用来拼接多字段,完全不会出现在最终输出里,你可以把delimiter和escapechar换成代码中永远不会出现的字符即可:

# 把delimiter换成不会出现在Python代码里的字符,escapechar同理
thewriter = csv.writer(f1, delimiter='|', quotechar='', escapechar='\\', quoting=csv.QUOTE_NONE)

修改后原有写入逻辑不需要动,输出就不会再出现多余空格。

方案2:放弃csv模块,直接用原生文件写入(更推荐)

你要生成的是Python代码文件,不是CSV格式文件,用csv模块属于滥用工具,直接写入文件更简单高效,没有额外格式干扰:

with open('views.py', 'a+', encoding="UTF8") as f1:
    # 把要写的行全部放到列表里逐行写入即可
    code_lines = [
        'from django.shortcuts import render, get_object_or_404, redirect',
        '@method_decorator(login_required, name="dispatch")',
        'class PatientCreate(SuccessMessageMixin, CreateView): ',
        # 其余代码行
    ]
    for line in code_lines:
        f1.write(f"{line}\n")

这种方式输出的内容和你传入的字符串完全一致,不会有任何多余格式处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:54:03