python读取CSV文件

时间:2021-05-16 19:56:39

这几天一直在写爬虫的代码,需要将爬取的数据保存到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]])