这几天一直在写爬虫的代码,需要将爬取的数据保存到csv文件中,总结一下读写csv文件的几种方法
1.利用Python I/O读取文件
def read_csv2(file_name): final_list = list() try: f = open(file_name, 'r') reader = csv.reader(f) for row in reader: final_list.append(row) return final_list except IOError: return final_list
try,except是捕获在文件不存在时读取文件抛出错误
2.利用pandas读取
csvfile = open(file_name, 'r') df = pd.read_csv(csvfile_tweets,encoding = "utf-8",header=None) df = tweets_df.fillna("") #NaN填充为"" final_list= np.array(tweets_df).tolist()
这里有一点需要注意,利用pandas的方法读取,如果每行的列数不一样会出现下面两种情况:
第一行的列数小于后面行的列数,会报错
第一行的列数大于后面行的列数,最后返回的list中后面行会出现空值
a. 利用pandas写入csv:
with open("test.csv","w") as csvfile: writer = csv.writer(csvfile) #先写入columns_name writer.writerow(["index","csv_1","csv_2"]) #写入多行用writerows writer.writerows([[0,1,3],[1,2,3],[2,3,4]])