当前位置:   article > 正文

(项目必备)python读写常见文件各种方式(json,csv,excel)_python读取什么格式的数据最方便

python读取什么格式的数据最方便

文章为本人所总结,用于日常学习。但也希望各位看官朋友们如果觉得有帮助的话,可以不吝三连,不胜感激!如果发现侵权或不当之处,请在评论区指出,我会尽快处理。

前言

最近做项目,由于经常要读写一些文件并进行处理,总是需要上网搜索相关读写代码,效率有些低。故在此总结一下常见文件的python读写方式,形成一个工具库,便于自己使用

一、json文件读写

1.json读取文件

load()读取文件

  1. with open(”文件名“, 'r', encoding='utf-8') as f:
  2. result = json.load(f)

逐行读取文件,采用loads()将JSON对象解码成Python对象

  1. with open("文件名") as f:
  2. line=f.readline():
  3. result=json.loads(line)

2.json写入文件

dump()将Python对象转换成JSON对象并写入文件

  1. examples = [{"问题": "abcd", "回答": "a"}, {"问题": "cdef", "回答": "d"}]
  2. with open('文件名', 'w', encoding='utf-8') as f: #采用encoding=’utf-8‘写入中文
  3. json.dump(examples, f, ensure_ascii=False, indent=4) #采用ensure_ascii避免写入时转成ascii码,indent自动缩进
  4. '''
  5. output:
  6. [
  7. {
  8. "问题": "abcd",
  9. "回答": "a"
  10. },
  11. {
  12. "问题": "cdef",
  13. "回答": "d"
  14. }
  15. ]
  16. '''

dumps():将Python对象转换成 JSON对象

这种主要是用于先把list中每个元素转成JSON对象再逐行写入文件

二、csv文件读写

csv文件常用的就是csv库和pandas库 

1.csv读写

csv读取文件:

  1. import csv
  2. with open('文件名','r') as csvfile:
  3. data = csv.DictReader(csvfile) #读取出来是一个list,每个元素是一个dict
  4. #逐行读取
  5. for line in data:
  6. #取某一行中列名为‘score’的元素
  7. score = line['score']

csv写入文件:

  1. import csv
  2. with open('文件名', 'w', newline='') as csvfile:
  3. fieldnames = ['first_name', 'last_name'] #列名
  4. writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
  5. writer.writeheader()
  6. writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
  7. writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
  8. writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})

2.pandas读写

用pandas库读写文件是更方便的操作,不过需要对DataFrame数据结构有一定了解

pandas读取文件:

  1. import pandas as pd
  2. datas = pd.read_csv('文件名') #Dataframe数据类型

下面是一些读取后的常见操作,这里只介绍一些我碰到的。

逐行遍历:

  1. data_list = []
  2. for i, row in datas.iterrows():
  3. score = row['score'] #每一行列名为’score‘的元素
  4. data_list.append(row)

过滤操作,得到所有某一列中元素大于某个值的数据:

filter_data = datas[datas["score"]>=4] #取出所有’score‘列元素大于4的数据

pandas写入文件:

 需要先将数据变为DataFrame形式

  1. data = {'row1':[1,2,3,'abcd'],'row2':[4,5,6,'efgh']}
  2. #需要先将数据变成DataFrame形式
  3. data_df = pd.DataFrame(data)
  4. data_df.to_csv('filename', index=False, header=True) #index表示设定是否需要行索引,设定为FALSE表明不需要,就不会生成新的行索引; header表明是否需要列索引,设定为True(默认设置)表明需要,那么之前df的列标签就会保存。

三、excel文件读写

excel文件读写主要有两种方式:xlrd读xlwt写,pandas库读写

1、xlrd和xlwt读写文件

xlrd读取excel文件:

  1. import xlrd
  2. workbook = xlrd.open_workbook("文件名")
  3. worksheet = workbook.sheet_by_index(0) #读取第一张表
  4. data = worksheet.col_values(4) #取第5列的数据,list

xlwt写入excel文件 :

  1. wb = xlwt.Workbook()
  2. ws = wb.add_sheet('A') # 增加sheet
  3. ws.write(0, 0, 'abcd') #第0行第0列写入‘abcd’
  4. ws.write(1, 0, 'bcde')
  5. wb.save('文件名')

xlwt写入文件需要一格一格写,不太方便,用pandas更好

2、pandas读写文件

pandas读取文件:

  1. import pandas as pd
  2. data_frame = pd.read_excel('文件名', sheet_name='A') #读取表名为A,数据形式为DataFrame
  3. user_names = data_frame["UserName"] #取出名为'UserName'的一列数据
  4. #逐行读取
  5. for row in data_frame.index.values:
  6. doc = dict()
  7. doc['key1'] = data_frame.iloc[row, 0]
  8. doc['key2'] = data_frame.iloc[row, 1]

pandas写入文件:

  1. writer = pd.ExcelWriter('文件名')
  2. data = {'user_name': ['Mike', 'Tom'], 'score': ['99', '79']}
  3. sname = 'A' #表名
  4. df = DataFrame(data) #转换成DataFrame
  5. df.to_excel(writer, sheet_name=sname) 写入excel

总结

以上是对于常见文件的一些读写处理,也包括读取后一些简单的操作介绍,意在提供一个比较便捷的工具库,肯定有不够全面之处,日后如果再进行相关工作,也会进行补充。希望各位看官朋友们如果觉得有帮助的话,可以不吝三连,不胜感激!如果发现侵权或不当之处,请在评论区指出,我会尽快处理。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/595997
推荐阅读
相关标签
  

闽ICP备14008679号