Python使用csv库转换文本文件为CSV时格式异常的解决方法
问题修复方案
问题出在writerow()的参数逻辑上:这个方法要求传入可迭代的列集合(比如列表),但你直接传入了字符串——而字符串本身属于可迭代对象,会被拆解成单个字符,每个字符就变成了CSV里的一列,所以才会出现D,B,0,0,6,3,2的情况。
只需要把处理后的字符串放进一个列表里,让writerow()把整个字符串作为单独一列写入即可,修改后的代码如下:
import csv with open(r'C:\Users\soso-\Desktop\SVM\DataSet\drug_list.txt') as f: with open('integrated_x.csv', 'w', newline='') as out_file: # 加newline=''避免Windows下多出空行 writer = csv.writer(out_file) for line in f: cleaned_line = line.strip() print(cleaned_line) writer.writerow([cleaned_line]) # 将字符串包裹进列表,作为单列内容传入
补充说明:添加newline=''是为了避免Windows系统下生成的CSV文件自动插入额外空行,属于适配性优化。
内容的提问来源于stack exchange,提问作者Sara Almashharawi
相关产品推荐
相关产品推荐

