泡菜模块和几个对文件处理的 第三方模块

先来看一下泡菜(pickle)模块的使用:

一般情况下我们是这样进行文件的 读取操作的:

with open(path, 'w', encoding='utf-8') as f:
        f.write('需要写入的内容')

  with open(path, 'r', encoding='utf-8') as f:
        f.read()

现在我们使用泡菜模块来进行读取操作:

import pickle  
with open(path, 'rb')as f:
       pickle.load(f)
with open(path,'wb')as f:
        pickle.dump(ojb, f)

我们在使用csv模块来对csv后缀名的文件进行读取操作,csv为第三方模块,需要自己下载和安:

 L = []
 with open(path, 'r', )as f:
     a = csv.reader(f)  #   返回的是一个可迭代对象
     for i in a:
         L.append(i)
 print(L)
 with open(path,'w',newline = '')as f:
     b = csv.writer(f)   # 获得一个可以写入的csv文件的对象
     b.writerrows(L)   # 传入一个可迭代对象,并对其进行逐行写入

再来看一下处理表格文件的模块:
有两个:openpyxl和pyexcel_xls

from openpyxl.reader.excel import load_workbook

a = load_workbook(filename='good.xlsx')
print(a)
# 查询文件 中所有的表名
name_list = a.get_sheet_names()  
print(name_list)
 # 通过表名拿到对应的表的信息
sheet = a.get_sheet_by_name(name_list[1])  
#打印表的标题,行和列
print(sheet.title, sheet.max_row, sheet.max_column)
#  打印表中某一位置的信息
c = sheet.cell(row=12, column=4).value
print(c)
sheet_list = []
for row in range(1, sheet.max_row+1):
    row_list = []
    for column in range(1, sheet.max_column + 1):
        #  通过行数和列数我们得到某个表里对应的 元素
        b = sheet.cell(row=row, column=column).value
        # if b:
        #      row_list.append(b)  # 判断某个信息是不是为空,为空就跳过  但可能会破坏格式
        row_list.append(b)

    sheet_list.append(row_list)
print(sheet_list)

dict1 = {}
for i in range(len(name_list)):
    sheet = a.get_sheet_by_name(name_list[i])  # 通过表名拿到对应的表
    sheet_list = []
    for row in range(1, sheet.max_row + 1):
        row_list = []
        for column in range(1, sheet.max_column + 1):
            b = sheet.cell(row=row, column=column).value
            row_list.append(b)
        sheet_list.append(row_list)
        # 表的名字作为key,表的信息作为值
    dict1[name_list[i]] = sheet_list

print(dict1)
from pyexcel_xls import get_data
from collections import  OrderedDict # 有序字典


a = get_data('good.xls')    # 从文件中读取所有内容,生成一个有序字典
print(a)

dic = {}
for x in a:
    dic[x] = a[x]

print(dic)

反过来我们可以自己写一个excel表来存储信息

from pyexcel_xls import  save_data
from collections import  OrderedDict
# 解释一下下面的字典结构,标题作为字典的key,每个标题以及
# 下面的具体信息构成一个表格,标题对应的值是一个列表,每个
# 列表中又有小列表,第一个小列表是小标题,后面的列表是具体
# 信息。一共有两个大标题。
dic = {'老师': [['名字', '年龄', '收入'], ['hhl', '18', '100'], ['xlg', '34', '500'], ['方式', '45', '1000']],
       '班级': [['学科', '班级号', '教师号', '班级人数'], ['py', 100, 13, 20], ['java', 101, 15, 12], ['bg', 102, 65, 23], ['ios',103, 67, 34]]}
 # 生成有序字典
orderdic = OrderedDict()
# 将无序字典增加到有序字典中
orderdic.update(dic)
# 将有序字典保存到某个excel文件中
save_data('end.xls', orderdic)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值