Python文件操作(读写Excel)

文件读写Excel

1.使用xlrd读取excel

#使用xlrd读取excel
#1.导入模块
import xlrd
# 2. 使用xlrd的函数打开本地文件
workbook=xlrd.open_workbook('案例.xlsx')
#3. 获取工作表
# sheets=workbook.sheets()#获取所有工作表组成list,具体某个表用下标
# sheetOne=sheets[0]

# sheetOne=workbook.sheet_by_index(0)#使用函数通过int 获取第几张

# 返回工作表名称组成的列表
sheetNames=workbook.sheet_names()
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])
# sheetOne.cell(row,col) 获取单元格
# 单元格.value 是值
# sheetOne.cell_value(row,col)直接返回值
print(sheetOne.cell(8,1).value)
print(sheetOne.cell_value(8,1))

image-20200917193820674

# 用循环 输出所有单元格的内容
# 方法一
# 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))

image-20200917200509360

2.使用xlwt模块写入excel

# 导入xlwt模块
import xlwt
# 创建工作簿
wb=xlwt.Workbook()
#创建工作表
sheet=wb.add_sheet('newSheet')
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))
# 保存文件
wb.save('newExcel.xls')

image-20200917204250254

3.使用xlutils模块修改excel

# 使用xlutils模块修改 excel
import xlrd
from xlutils.copy import copy
# xlrd 读取工作簿
wb=xlrd.open_workbook('案例.xlsx')
# 复制一份工作簿,用来写入
copyed=copy(wb)
# 获取复制来的 工作簿的工作表
sheetOne=copyed.get_sheet(0)
# 使用writr()写入
sheetOne.write(3,0,'我是更改的内容')
# 保存,如果保存的文件名存在则覆盖,不存在则保存个新的
copyed.save('new新存的.xls')

4.使用openpyxl操作excel

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

image-20200917205940919

5.工作簿属性与方法

from openpyxl import Workbook # 创建 新的 工作簿
from openpyxl import load_workbook # 打开已有工作簿
# wb = load_workbook('new1.xls') 打开不了 xls 的文件
wb = load_workbook('F:\Python资料\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')

6.工作表属性与方法(上)

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 :表的名称
'''

7.工作表属性与方法(下)

'''
方法: 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')

9.什么是json文件

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

10.常用文件及目录操作

os 模块提供了非常丰富的方法用来处理文件和目录。
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") 重命名文件/目录
posted @ 2020-09-17 21:35  秋弦  阅读(820)  评论(0编辑  收藏  举报