赞
踩
文章为本人所总结,用于日常学习。但也希望各位看官朋友们如果觉得有帮助的话,可以不吝三连,不胜感激!如果发现侵权或不当之处,请在评论区指出,我会尽快处理。
目录
最近做项目,由于经常要读写一些文件并进行处理,总是需要上网搜索相关读写代码,效率有些低。故在此总结一下常见文件的python读写方式,形成一个工具库,便于自己使用
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)
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库和pandas库
- import csv
- with open('文件名','r') as csvfile:
- data = csv.DictReader(csvfile) #读取出来是一个list,每个元素是一个dict
- #逐行读取
- for line in data:
- #取某一行中列名为‘score’的元素
- score = line['score']
- 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'})
用pandas库读写文件是更方便的操作,不过需要对DataFrame数据结构有一定了解
- 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的数据
需要先将数据变为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文件读写主要有两种方式:xlrd读xlwt写,pandas库读写
- import xlrd
-
- workbook = xlrd.open_workbook("文件名")
- worksheet = workbook.sheet_by_index(0) #读取第一张表
- data = worksheet.col_values(4) #取第5列的数据,list
- 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更好
- 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]
- 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
以上是对于常见文件的一些读写处理,也包括读取后一些简单的操作介绍,意在提供一个比较便捷的工具库,肯定有不够全面之处,日后如果再进行相关工作,也会进行补充。希望各位看官朋友们如果觉得有帮助的话,可以不吝三连,不胜感激!如果发现侵权或不当之处,请在评论区指出,我会尽快处理。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。