解决csv文件用writerow方法写入时,字符串被分割成一个字符占一个单元格的问题
目录
🍓问题与现象
🍑解决方案
🍒分析
🍓问题与现象
在使用csv的writerow方法时,直接写入字符串会导致字符串被分割成一个字符占一个单元格的问题。
代码如下:
import csvfile = open('demo.csv', 'w')writer = csv.writer(file)writer.writerow('今天你吃饭了吗')
运行结果如下:
🍑解决方案
使用writerow方法必须将字符串转化成列表,否则就会一个字符占一个单元格。
所以加上[ ]即可,修改代码如下:
import csvfile = open('demo.csv', 'w')writer = csv.writer(file)writer.writerow(['今天你吃饭了吗'])
运行结果如下:
🍒分析
查看writer源码,可以看到源码中的提示Iterable[Any],说明我们所写内容必须转化为列表
源码如下:
class _writer: dialect: Dialect def writerow(self, row: Iterable[Any]) -> Any: ... def writerows(self, rows: Iterable[Iterable[Any]]) -> None: ...