首页 🐍Python

python-excel

导入模块

[yellowbar]
import csv
import xlrd
from xlutils.copy import copy
import xlwt
from openpyxl import Workbook
[/yellowbar]

文件读写EXCEL

使用xlrd读取excel

import csv
import xlrd
import xlwt
from openpyxl import Workbook
 导入模块
# 使用 xlrd的函数打开本地文件,并用变量储存
# workbook = xlrd.open_workbook('F:/桌面/data.xlsx')
# # 获取工作表
# sheetNames = workbook.sheet_names()  # 返回工作表名称组成的列表
# # 获取表的索引,0为第一张表
# sheetOne = workbook.sheet_by_name(sheetNames[0])
# row = sheetOne.nrows  # 行数
# col = sheetOne.ncols  # 列数
# # for遍历行数,输出每行
# for i in range(row):
#     each_row = sheetOne.row_values(i)
# print(each_row)
# # for遍历列数,输出每列
# for i in range(col):
#     each_col = sheetOne.col_values(i)
# print(each_col)
# # 精确到单元格
# # 尝试输出第二行,第二列的值,读取列表的方式
# print(sheetOne.row_values(1)[1])
# # heetOne.cell(row,col)获取单元格
# # 单元格.value是值
# # sheetone.cell_value(row,col)直接返回值
# print(sheetOne.cell(8, 1).value)
# print(sheetOne.cell_value(8, 1))
# # 方法一
# for i in range(row):
#     eachrow = sheetOne.row_values(i)
#     for each in eachrow:
#         print(each)
# # 方法二
# for i in range(row):
#     for j in range(col):
#         print(sheetOne.cell_value(i, j))

使用xlwt模块写入excel

# 创建工作簿
wb = xlwt.Workbook()
# 创建工作表
sheet = wb.add_sheet('newSheet')
# 向第一行第一列写入 0
sheet.write(0, 0, '0')
# 向第一行第3列写入 haha
sheet.write(0, 2, 'haha')
# 循环嵌套 ,在第二行开始写入九九乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        sheet.write(i, j-1, str(j)+'x'+str(i)+'='+str(i*j))  i,j-1控制位置
# 保存文件
wb.save('newExcel.xls')

image-20200916100230467

使用xlutils模块修改excel

wb = xlrd.open_workbook('F:/桌面/data.xlsx')
复制一份工作普,用来写入
# copyed = copy(wb)
复制来的 工作普的工作表
# sheetOne = copyed.get_sheet(0)
使用write()写入
# sheetOne.write(3, 0, '我是更改内容')
保存,如果保存的文件名存在则覆盖,不存在则保存新的
# copyed.save('new新存的.xls')

image-20200916110822568

使用openpyxl操作excel

# 实例化对象,创建工作表
wb=Workbook()
使用第一张工作表
sheet=wb.active
给工作表起个名字
sheet.title='表的名称1'
给表增加内容:sheet.append(list类型)
sheet.append([1,2,3])
保存工作表
wb.save('new1.xlsx')

image-20200916110923896

工作簿属性和方法

from openpyxl import Workbook # 创建 新的 工作簿
from openpyxl import load_workbook # 打开已有工作簿
# wb = load_workbook('new1.xls') 打开不了 xls 的文件
wb = load_workbook(‘data.xlsx')
'''
workbook 的属性:
workbook.sheetnames : 所有工作表的名字 组成的列表
workbook.worksheets : 所有工作表 组成的列表
workbook.active : 默认的工作表(第一张)
workbook 的方法:
workbook.get_sheet_names() : 同 workbook.sheetnames
workbook.get_active_sheet() : 同 workbook.active
workbook.get_sheet_by_name(name): 根据name获取 sheet
workbook.create_sheet(sheetname,index) : 创建sheet,以及名称与index位置
workbook.save(filename) : 保存
'''
sheet = wb.create_sheet('新的',2)
sheet.append([1,2,3])
wb.save(‘data.xlsx')

工作簿属性和方法上

from openpyxl import load_workbook
wb = load_workbook('data.xlsx')
# 获取表格 wb[ 'sheetname' ]
sheet = wb['新的']
'''
工作表的属性:
sheet.rows :行数对象
sheet.columns :列数对象
sheet.max_row :有效的最大行数
sheet.min_row :有效的最小行数
sheet.max_column:有效的最大列数
sheet.min_column:有效的最小列数
sheet.values :所有单元格的值组成的2维列表。每行是一个元组
sheet.title :表的名称
'''

工作簿属性和方法下

'''
方法: sheet.cell(row=1,column=1) 获取单元格 .从1开始计数
'''
# print(list(sheet.rows))
print(sheet.max_row)
print(sheet.min_row)
print(list(sheet.values))
print(sheet.cell(2,2).value) # 读取1
print( sheet['b2'].value ) # 也是1
# 获取单元格还可以 直接 sheet['C4']
sheet['C4'].value = '炸弹'
sheet['C'+str(4)].value = '炸弹'
for i in range(1,11):
sheet['A'+str(i+1)].value = i*10
wb.save('data.xlsx')

什么是 json 文件

[redbar]
SON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于
ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C
语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON
成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提
升网络传输速率)
Json模块提供了四个功能:dumps、dump、loads、load
dumps把数据类型转换成字符串
dump把数据类型转换成字符串并存储在文件中
loads把字符串转换成数据类型
load把文件打开从字符串转换成数据类型
[/redbar]

常用文件及目录操作

[bluebar]
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
[/bluebar]




文章评论

目录