CSV文件的读写

深藏阁楼爱情的钟 2022-02-05 08:53 484阅读 0赞

CSV是一种以半角字符 , 分隔的文本文件。

①普通文本方式读写
可以用普通的读取txt的方式读取,读取结果都是字符串形式。每行内以逗号分隔

  1. f = open('test.csv','r')
  2. lines = f.readlines()
  3. for line in lines:
  4. print(line)
  5. f.close()

写入时按照字符串写入,以逗号分隔,并加换行符\n

  1. f = open('test.csv','w')
  2. f.write('时间,生命\n')
  3. f.write('风景,如画\n')
  4. f.close()

优点快速简洁,缺点行标签,列标签都要自己读写。

②用csv读取和写入
读取:

  1. import csv
  2. with open("test.csv","r") as csvfile:#也可以用open
  3. reader = csv.reader(csvfile)
  4. #这里不需要readlines
  5. for line in reader:
  6. print line

简单写入用csv库:

  1. import csv
  2. csv_file = open('test.csv','w')
  3. writer = csv.writer(csv_file)
  4. #单行写入用writerow
  5. writer.writerow(['品牌','型号','价值'])
  6. #多行写入用writerows,写入的结果数字往右靠了,字符串往左靠
  7. writer.writerows([['华为','v6 plus',2499],['iphone',7,4500],['samsun','s7',5000]])
  8. csv_file.close()

3、pandas:
读取:

  1. import pandas as pd
  2. data = pd.read_csv('test.csv',encoding ='gbk')
  3. print(data)#打印所有数据
  4. #print(data.head(1))#打印前2行
  5. print(data.columns)#打印所有列名
  6. #print(data.loc[1:2])#打印1到2行
  7. #还有许多许多的用法看收藏链接

用pandas写入:

  1. import pandas as pd
  2. '''pandas学习创建dataframe,然后保存到CSV中,包括列表写入和字典写入:'''
  3. #========================================================
  4. ##列表创建dataframe然后保存
  5. #import pandas as pd
  6. #
  7. #
  8. #a =[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
  9. # lindex =['q','w','e','r']
  10. # lcolumns =[6,6,6,6]
  11. # df = pd.DataFrame(a,index = lindex,columns = lcolumns)
  12. # #index为行标签,columns为列标签,不写或者False,那么为0开始的序列
  13. # print(df)
  14. #=============================================================================
  15. #字典创建dateframe然后保存
  16. #字典的每个key的value代表一列,而key是这一列的列名
  17. import pandas as pd
  18. #任意的多组列表
  19. dic ={
  20. 'a_name':[1,2,'',3],'b_name':[4,5,6,6]}
  21. lindex =['q','w','e','r']
  22. #字典中的key值即为csv中列名
  23. df = pd.DataFrame(dic,index = lindex)
  24. print(df)
  25. #将DataFrame存储为csv,index表示是否显示行名,default=True
  26. df.to_csv("test.csv",index =True)

发表评论

表情:
评论列表 (有 0 条评论,484人围观)

还没有评论,来说两句吧...

相关阅读