csv转xlsx - 导入时总是空白?
我在尝试把一个csv文件转换成xlsx格式,以便后续处理。但是无论我怎么做,生成的xlsx文件总是空的(虽然能创建xlsx文件并添加工作表名称,但里面从来没有数据)。
我真的很困惑,尝试了各种方法。下面是我用过的最完整的代码。
import csv
from xlsxwriter.workbook import Workbook
workbook = Workbook("test.xlsx")
worksheet = workbook.add_worksheet("Raw_Data")
with open("C:\Console2\\csv.test",'r') as f:
reader = csv.reader(f)
for r, row in enumerate(reader):
for c, col in enumerate(row):
worksheet.write(r, c, col)
我不太理解reader这一行之后的部分,但我发现我找到的所有相关代码都在用这个。我也尝试过用“for语句”来写一个普通的csv文件,但也没有成功。
补充 - 问题似乎出在reader这个变量上,不知道为什么,因为它在其他代码中运行得很好。
更新 - 看起来代码覆盖了原来的csv文件,不知道具体原因,我只是想读取文件并保留里面的内容。
1 个回答
1
你需要关闭 workbook
才能让它正常工作:
import csv
from xlsxwriter.workbook import Workbook
workbook = Workbook("test.xlsx")
worksheet = workbook.add_worksheet("Raw_Data")
with open("C:\Console2\\csv.test",'r') 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()
可以在 这里 查看一个示例。