使用python简单处理json, csv,excel文件

1 excel部分:

主要是xlrd包的使用,这里比较简单,如需要详细信息请查找python有关文档

import xlrd

def xl_read():
    """excel读取"""
    book = xlrd.open_workbook('path')      #获取全部文件数据
    sheet = book.sheet_by_index(1)         #获取第一个工作表
    sheet = book.sheet_by_name('name')     #通过工作表名称获取对象
    print(sheet.nrows)                     #获取行数
    for sheet in book.sheets() :           #获取所有标签
        print(sheet.name)
    for i in (sheet.nrows):
        print(sheet.row_values(i))         #获取行索引



if __name__ == '__main__':
    xl_read()

2 json部分
主要是导入json包进行操作

import json
#json格式和字典表类似,但存在差异

def jiso_basic():
    data = {
        'ID' : 1,
        '课程' :'python',
        '机构' :'课堂',
        "单价" : 'http:..code'
    }
    print(data)
    jion_str = json.dumps(data)   #将格式变为json格式字符串
    print(jion_str)
    jion_data = json.loads(jion_str)   #将数据还原
    print(jion_data)

def jion_writer_file():
    """写json文档"""
    data = {
        'ID': 1,
        '课程': 'python',
        '机构': '课堂',
        "单价": 'http:..code'
    }
    with open('data.json','w',encoding='utf8') as f:
        json.dump(data,f)                           #同时完成写入


def json_read_file():
    """读取文件"""
    with open('data.json','r',encoding='utf8') as f:
        data = json.load(f)                 #读取文件
        print(data)

def json_type_diff():
    """类型差异"""
    print(json.dump(False))        #结果是flase
    print(json.dump(None))         #结果是null

if __name__ == '__main__':
    json_type_diff()

3 csv 部分
主要使用csv包进行操作

from collections import namedtuple
import csv

def csv_read(path):
    """读取csv文件"""
    with open(path,encoding='utf8') as f:             #path是文件地址
        reader = csv.reader(f)
        headers = next(reader)                        #获取下一行信息
        for roe in headers:                           #可迭代对象
            print(f'编号{roe[0]}')                     #获取roe第一个数据


def csc_read_by_nametuple(path):
    """读取csc并用nametuple读取映射名"""
    with open(path,encoding='utf8') as f:             #path是文件地址
        reader = csv.reader(f)
        headers = next(reader)
        Row = namedtuple('Roe',headers)  #Roe是框架名称,headers是名称
        for r in reader:
            row = Row(*r)
            print(f'{row.ProdactID}')    #获取属性的方法回去

def csc_read_by_nametuple(path):
    """读取csc并用nametuple读取映射名"""
    with open(path,encoding='utf8') as f:             #path是文件地址
        reader = csv.DictReader(f)  #获取的为字典表,键是第一行对应属性
        for r in reader:
            print(r.ProdactID)

import csv
def csv_read():
    """"""
    with open('my_coures.csv','r',encoding='utf8',newline='') as f:
        reader = csv.DictReader(f)
        headers = next(reader)
        print(headers)
        for row in reader:
            print(row['编号'])
def cxv_write():
    """写入csv文件"""
    headers = ['编号',"课程名称","讲师"]
    row = [
        (1,'python','Eason'),
        (2, 'C+', 'Eason'),
        (1, 'java', 'Eason')
    ]
    with open('my_coures.csv','w',encoding='utf8',newline='') as f:    #newline指定每行最后会不会换行
        write = csv.writer(f)                       #需要有写入器
        write.writerow(headers)                     #写入单行
        write.writerows(row)                        #写入多行

def csv_write_dict():
    """dict格式写入数据"""
    haeders = ['ID','Totle',"org",'url']
    row = [
    {'ID' : 1 ,"Totle" : 'python','org':'dwdw','url':'fdeo'},
    {'ID': 2, "Totle": 'python', 'org': 'dwdw', 'url': 'fdeo'},
    {'ID': 3, "Totle": 'python', 'org': 'dwdw', 'url': 'fdeo'}
    ]
    with open('My_course2.csv','w',encoding='utf8',newline='') as f:
        writer = csv.DictWriter(f,haeders)    #headers默认知道是表头
        writer.writeheader()
        writer.writerows(row)

if __name__ == '__main__':
    csv_write_dict()
发布了19 篇原创文章 · 获赞 0 · 访问量 551

猜你喜欢

转载自blog.csdn.net/lsy666aaa/article/details/104229687