python读写csv文件:
- 打开csv文件出错
2.打开csv文件的方式:
#导入csv模块
import csv
with open('xxx.csv','r',encoding='utf-8) as file:
#csv.DictReader返回类型为csv.DictReader,简单理解为包含除表头外的所有行的一个列表lines,
#,每一行line作为列表的一个元素,line中的数据为键值对(表头,数据)
lines=csv.DictReader(file)
for line in lines:
print(line)
3.python字符串转换为数字:
如果是整数,使用int(),默认基数为10,如果是浮点数,使用float(),因为粉丝数中包含‘万’字,先判断去除 。这里要注意python中列表切片中[:-1],不包括最后一个元素:
s=[1,2,3]
print(s[:-1])
打印结果为:1,2
4.csv.DictReader类型不支持列表切片,只能全部遍历,如果要访问某一行中的某个数据,是用键值对的方式
5.对csv文件的写入
file_write=open(r'E:\learning\网络舆情\实验3\weibo_result.csv','w+',encoding='utf-8-sig',newline='')
header=['用户名','用户ID', '性别','IP属地','粉丝数', '关注数','简介','发布的微博数','用户标签']
dict_writer=csv.DictWriter(file_write,header)
with open(r'E:\learning\网络舆情\实验3\weibo.csv', 'r', encoding='utf-8') as file_obj:
# 读取
dictReader = csv.DictReader(file_obj)
# 2.遍历进行读取数据
print(type(dictReader))
for line in dictReader:
dict_writer.writerow(rule(line))
file_write.close()
需要主义的是打开文件时encoding='utf-8-sig',避免写入后乱码,newline='',避免写入空行