问题描述:
如何将列表中的元素写入.csv文件中?假如ls=[("张三",60),("李四",50),("王五",40)]
问题解答:
由于列表中的每个元素是一个元组,一个元组由一个字符串和整数,显然使用.join()是不行的,因为.join()要求连接的元素都是字符串。
这时我从网上搜到了一个专门往.csv文件中写入元组的方法,如下:
import csv
# 打开一个新的 csv 文件,准备写入
with open('result.csv', 'w', encoding='utf-8') as csvfile:
csvwriter = csv.writer(csvfile)
# 遍历列表,将每个元组写入文件
for item in ls:
csvwriter.writerow(item)
我们发现writerow()是一个专门往文件中写入元组的函数,但是 csv.writer()和writerow()平时用的不多,这个代码专一性太强,不容易让普通人明白。
所以采用第二种方法,先将列表中每个元组中的信息赋值给另外两个变量,然后将变量写入.csv文件中,并且写入的命令就是f.write()函数,这说明.csv文件写入命令和.txt写入文件命令可能相同,就比较容易使用。
#列出词频超过40的结果
with open(r'result.csv','a', encoding = 'gbk') as f:
for i in li:
key,value = i
f.write(key + ',' + str(value) + '\n')
print(key + ',' + str(value))