python数据分析 | csv,json,xls文件读写

前面有一篇博客比较详细地讲了文件操作
python之文件操作介绍
这一篇博客会简单提及一下,重点主要落于学习和回顾csv,json,xls等各类文件读写

1 文件操作回顾

文件操作:

可以回顾此篇博客:python之文件操作介绍
(1)对文件(File)进行输入和产出的操作(IO Input/Output),即通过Python程序对计算机的各种文件进行增删改查的操作
(2)操作文件的步骤 1.打开文件 2.对文件进行各种操作(读写)然后保存 3.关闭文件
(3)语法1(以读为示例):

    f = open(file,mode='r',encoding = None)  # 读模式
    f.read() 读取全部 /f.readline() 逐行读取 / f.readlines() 读取全部,且为列表
    f.close() 

(4)语法2(以读为示例):

    with open(file,mode='r',encoding = None) as f:
         f.read() 读取全部 /f.readline() 逐行读取 / f.readlines() 读取全部,且为列表

(5)python中对文件操作的各种模式

========= ===============================================================
Character Meaning
--------- ---------------------------------------------------------------
'r'       open for reading (default)  读
'w'       open for writing, truncating the file first 写
'x'       create a new file and open it for writing  新建并写
'a'       open for writing, appending to the end of the file if it exists
'b'       binary mode   追加
't'       text mode (default)  默认模式,txt文档
'+'       open a disk file for updating (reading and writing) 
'U'       universal newline mode (deprecated)
========= ===============================================================

2 Python操作json文件

JSON是一种使用广泛的轻量数据格式. Python标准库中的json模块提供了JSON数据的处理功能。
由于JSON与python中的字典格式非常像。所以python中的json模块也相当于是用来使json与字典做转换。
注意的是,json中的数据必须使用双引号包裹
json格式:’{“key”:“value”}

# 写入json文件
import json
data = {"age":18}
# type(data)       # python对象:dict

with open("data.json","w") as f:
    # f.write(data)          # 报错:使用write w模式必须写入str
    json.dump(data,f)        # python 对象 转为 json对象 写入json文件
#  读取data.json文件中的数据并且获取到18这个值
with open("data.json","r") as f:
#     print(f.read())  # {"age": 18}
#     print(type(f.read()))  # <class 'str'> 字符串  
#     print(dict(f.read()))    # {} 字符串无法传入dict里面 
    
    # json对象 转为 python对象:字典
    j_data = json.load(f)  # 将json格式的字符串转为字典
    print(j_data)  # {'age': 18}  
    print(type(j_data))  #  <class 'dict'>
    print(j_data["age"]) # 18

3 Python操作csv文件

CSV即Comma Separate Values,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本),经常用来作为不同程序之间的数据交互的格式。
下面展示用内置模块和用panda方式读写csv

# 创建demo3.csv文件,写入数据
import csv   # 内置模块 

with open("demo3.csv","w",newline="") as f:
    # 创建csv写的对象
    datawriter = csv.writer(f)
    
    # datawriter.writerow(["name","age","gender"])  # 逐行写入 
    # datawriter.writerow(["小陈","18","female"])
    
    datawriter.writerows([["class","name"],["1","chen"]])  # 双层列表,两行直接写入
# 读取demo3.csv文件数据
with open("demo3.csv","r") as f:
    # 创建csv读对象
    datareader = csv.reader(f)   
    
    # 迭代器   
    # print(next(datareader))
    # print(next(datareader))   
    
    # 直接通过for循环来一次性取出
    for i in datareader:
        print(i)
# 使用 pandas读写
import pandas as pd  # pip install pandas
# 读取
data = pd.read_csv("demo3.csv") 
print(data)           

# 写入
data_head = data.head()     # 显示前五行      
print(data_head)

data_save = data.to_csv("demo3.csv",index = False) 
data = pd.read_csv("demo3.csv") 

4 Python操作excel文件

在Python中,有很多第三方模块用来操作excel,比如说:xlwt,xlrd,openpyxl等。
注意 : openpyxl只支持2010版本以上的xlsx文件
下面展示用内置模块和用panda方式读写excel文件

# 使用openpyxl将数据写入demo03.xlsx
'''
思路:创建工作簿 --> 创建工作表 --> 写入数据 --> 保存
'''
from openpyxl import Workbook
wb = Workbook()     # 创建工作簿
ws = wb.active      # 激活sheet1

data = [
    ["name","age","gender"],
    ["amy","18","female"],
    ["daisy","19","female"]
]  # 三行三列

for row in data:   # 写入数据
    ws.append(row)
    
wb.save("demo03.xlsx")  # 保存工作簿
# 使用openpyxl读取demo03.xlsx数据
from openpyxl import load_workbook
wb = load_workbook('demo03.xlsx')  # 载入工作簿
ws = wb.active # 激活工作簿
for row in ws.rows:
    print(row)  # (<Cell 'Sheet'.A1>, <Cell 'Sheet'.B1>, <Cell 'Sheet'.C1>)  tuple
    for cell in row:
        print(cell.value)  # name  age gender
# pandas也提供了更加简便的实现方法,来操作excel文件
import pandas as pd

# 读取
data = pd.read_excel("demo03.xlsx",sheet_name=0)
print(data,type(data))             

# 写入
data.to_excel("demo04.xlsx",index=False)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值