【发布时间】: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