(项目必备)python读写常见文件各种方式(json,csv,excel)

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

前言

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

一、json文件读写

1.json读取文件

load()读取文件

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

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

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

2.json写入文件

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

examples = [{"问题": "abcd", "回答": "a"}, {"问题": "cdef", "回答": "d"}]
with open('文件名', 'w', encoding='utf-8') as f: #采用encoding=’utf-8‘写入中文
    json.dump(examples, f, ensure_ascii=False, indent=4) #采用ensure_ascii避免写入时转成ascii码,indent自动缩进

'''
output:
[
    {
        "问题": "abcd",
        "回答": "a"
    },
    {
        "问题": "cdef",
        "回答": "d"
    }
]
'''

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

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

二、csv文件读写

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

1.csv读写

csv读取文件:

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

csv写入文件:

import csv

with open('文件名', 'w', newline='') as csvfile:
    fieldnames = ['first_name', 'last_name'] #列名
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
    writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
    writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})

2.pandas读写

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

pandas读取文件:

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

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

逐行遍历:

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

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

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

pandas写入文件:

 需要先将数据变为DataFrame形式

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

三、excel文件读写

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

1、xlrd和xlwt读写文件

xlrd读取excel文件:

import xlrd

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

xlwt写入excel文件 :

wb = xlwt.Workbook()
ws = wb.add_sheet('A') # 增加sheet
ws.write(0, 0, 'abcd') #第0行第0列写入‘abcd’
ws.write(1, 0, 'bcde')

wb.save('文件名')

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

2、pandas读写文件

pandas读取文件:

import pandas as pd
data_frame = pd.read_excel('文件名', sheet_name='A') #读取表名为A,数据形式为DataFrame
user_names = data_frame["UserName"] #取出名为'UserName'的一列数据

#逐行读取
for row in data_frame.index.values:
    doc = dict()
    doc['key1'] = data_frame.iloc[row, 0]
    doc['key2'] = data_frame.iloc[row, 1]

pandas写入文件:

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

总结

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值