在 Python 中写入 CSV 时出现问题
Issue with writing CSV in Python
我正在阅读 XLSX 文件。并遍历行和列以消除 excel.
中的所有混乱
with open("../Converted/test.csv", "w") as f:
writer = csv.writer(f)
writer.writerow(header) # write the header
for i in range(10, max_row + 1):
full_data_row = ""
for j in range(1, max_col + 1):
cell_obj = sheet_obj.cell(row = i, column = j)
if cell_obj.value is not None:
full_data_row += str(cell_obj.value) + ','
full_data_row = full_data_row[:-1]
writer.writerow(full_data_row)
当我打印 full_data_row 时,它打印带有 的字符串,所以这是正确的。
当我检查我的 csv 文件时。我得到这个作为输出:
header1,header2,header3
O,p,z,e,t,h,o,s,t,e,d,
csvwriter.writerow()
需要一个可迭代对象(例如列表),并会为您处理格式设置(在值之间放置逗号)。因此,它将您的字符串解析为(字符的)列表,并在每个字符之间打印逗号。
另一种方法可以是:
for i in range(10, max_row + 1):
full_data_row = []
for j in range(1, max_col + 1):
cell_obj = sheet_obj.cell(row = i, column = j)
if cell_obj.value is not None:
full_data_row.append(str(cell_obj.value))
writer.writerow(full_data_row)
我正在阅读 XLSX 文件。并遍历行和列以消除 excel.
中的所有混乱 with open("../Converted/test.csv", "w") as f:
writer = csv.writer(f)
writer.writerow(header) # write the header
for i in range(10, max_row + 1):
full_data_row = ""
for j in range(1, max_col + 1):
cell_obj = sheet_obj.cell(row = i, column = j)
if cell_obj.value is not None:
full_data_row += str(cell_obj.value) + ','
full_data_row = full_data_row[:-1]
writer.writerow(full_data_row)
当我打印 full_data_row 时,它打印带有 的字符串,所以这是正确的。 当我检查我的 csv 文件时。我得到这个作为输出:
header1,header2,header3 O,p,z,e,t,h,o,s,t,e,d,
csvwriter.writerow()
需要一个可迭代对象(例如列表),并会为您处理格式设置(在值之间放置逗号)。因此,它将您的字符串解析为(字符的)列表,并在每个字符之间打印逗号。
另一种方法可以是:
for i in range(10, max_row + 1):
full_data_row = []
for j in range(1, max_col + 1):
cell_obj = sheet_obj.cell(row = i, column = j)
if cell_obj.value is not None:
full_data_row.append(str(cell_obj.value))
writer.writerow(full_data_row)