【问题标题】:xlsxwriter creates empty rows between full rowsxlsxwriter 在满行之间创建空行
【发布时间】:2021-07-09 19:49:04
【问题描述】:

我编写了一个 python 代码来使用 xlsxwriter 从 csv 文件生成一个 excel 文件。 但输出不是我想要的。我的数据之间有空行:

我不知道在我的代码中发生这种情况的原因是什么。我想像这样删除那些空行:

for csvfile in glob.glob(os.path.join('.', '*.csv')):
    workbook = Workbook(csvfile[:-4] + '.xlsx')
    worksheet = workbook.add_worksheet()
    with open(csvfile, 'rt', encoding='cp1252') as f:
        reader = csv.reader(f)
        for r, row in enumerate(reader):
            for c, col in enumerate(row):
                worksheet.write(r, c, col)
    workbook.close()

感谢您的帮助。

【问题讨论】:

  • 我认为是因为 reader 包含换行符,而 write 也写入换行符,所以你应该删除换行符
  • 试试with open(csvfile, 'rt', encoding='cp1252', newline='') as f:docs 中的示例使用newline=''
  • 如果这仍然不起作用,请在文本编辑器中打开您的 CSV。实际上,您的 CSV 文件中可能有空行。
  • @JustinEzequiel 你是对的。我的 csv 生成器创建空行: datas = {"big category":big_category,"small category":small_category,"Type de transaction":type_de_transaction,"Ville":city,"Secteur":secteur,"title":title, "description":description,"images":pics,"VENDRE PLUS VITE":vendre_plus_vite,"Prix":price} data.append(datas) df = pd.DataFrame(data) with open('sample.csv', ' a') as f: df.to_csv(f, header=False, index=False)
  • 我修复了它,将 newline='' 添加到我的 open() 函数中。谢谢@JustinEzequiel。您能否将您的回复作为答案,以便我接受?

标签: python excel csv xlsxwriter


【解决方案1】:

试试

with open('sample.csv', 'a', newline='') as f:

docs 中的示例使用newline=''

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多