1

我有带有 2 行标题、未知行数和列数的 csv 数据文件。例如

"x", "y"
"unit x", "unit y"
1, 2
3, 4

我使用以下代码读取 csv 文件并将其写入 xls 文件

import csv, xlwt

f = open('example.csv', 'rb')
reader = csv.reader(f)

workbook = xlwt.Workbook()
sheet = workbook.add_sheet("Sheet 1")

for rowi, row in enumerate(reader):
    for coli, value in enumerate(row):
        sheet.write(rowi,coli,value)

workbook.save("example.xls")

问题是它把我所有的数据都写成 xls 中的文本。如何将文本转换为数字?我知道前 2 行是标题,数据从第 3 行开始到最后。我怎样才能做到这一点?

4

1 回答 1

2

您可以检查您是否在第 3 行,然后转换value为 int。

for rowi, row in enumerate(reader):
    for coli, value in enumerate(row):
        if rowi >= 2:
            value = int(value)
        sheet.write(rowi, coli, value)

您也可以尝试将所有值转换为数字。

for rowi, row in enumerate(reader):
    for coli, value in enumerate(row):
        try:
            value = int(value)
        except ValueError as e:
            pass
        sheet.write(rowi, coli, value)
于 2013-01-13T20:14:15.247 回答