# 读写操作

csv的读写操作

  • 写操作
  1. writeheader():将fieldnames对应的参数以列名的形式写入表格
  2. writerow():单行写入,以字典的形式单行写入
  3. writerows():多行写入,以列表的形式写入,列表中的元素为字典,一个字典代表一行
import csv
with open('王者荣耀装备.csv','w',encoding='utf-8',newline='') as f:
    myWriter = csv.DictWriter(f,fieldnames=['类型','名称','价格'])
    myWriter.writeheader()
    myWriter.writerow({'类型': '法师','名称':'噬神之书','价格':'2080'})
    myWriter.writerows(
        [
            {'类型': '打野','名称':'打野刀','价格':'750'},
            {'类型': '游走','名称':'学识之石','价格':'300'},
            {'类型': '移动','名称':'冷静之靴','价格':'710'}
        ]
    )
print('写入完成')
  • 读操作
with open('王者荣耀装备.csv','r',encoding='utf-8') as f:
    #csv.DictReader()结果为可迭代对象
    result = csv.DictReader(f)
    for i in result:
        print(i,type(i))

excel文件

  • excel文件:后缀名为xls,后缀名为xlsx
    xls:office2007之前使用的后缀名
    xlsx:office2007之后使用的后缀名版本
  • 区别
    文件大小 :保存同样的数据,xlsx文件要小于xls文件
    性能 :xlsx优于xls
    容量 :xlsx大于xls,xlsx最多保存10485766行16000+列;xls最多65536行,256列
  • 使用三方模块
    openpyxl,xlrd,xlwt,win32com,xlsxwriting,xlutils等
  • openpysl(掌握): 操作新版xlsx后缀名
    xlrd,xlwt(了解,会用):旧版后缀名使用新软件打开,另存为,可以实现后缀名修改
  • pip install openpyxl
    pip3 install openpyxl

xlsx文件读操作

from openpyxl import load_workbook
#工作簿(workbook),工作表(worksheet),单元格(cell)
# 1.加载文件:load_workbook
wb = load_workbook('小宝剑大药房(高新店)2018年销售数据.xlsx')
print(wb)
#2.查看存在的工作表:sheetnames
print(wb.sheetnames)
# 3.查看工作表内容: active,工作簿对象[表名]
# active:文件保存关闭时那张表是打开状态,active就指向那张表。
# 工作簿对象[表名]:直接指定读取的工作表
print(wb.active)
print(wb['工作表 1'])
sheet = wb['工作表 1']
# 4.读取单元格
# 工作表.cell(行号,列号) - 行号都是从1开始的数字
# 工作表['列号行号'] -- 列号是大写英文字母,行号是从1开始的数字
result1 = sheet.cell(2,1)
print(result1)
result2 = sheet['A2']
print(result2)
#5.获取单元格内容  value
print(result1.value)
print(result2.value)
# 6.查看最大行,最大列
rows = sheet.max_row
cols = sheet.max_column
print(rows,cols)
# 7.将全部数据取出
for row in range(1,rows+1):
    for col in range(1,cols+1):
        print(sheet.cell(row,col).value)
# 8. 保存关闭
wb.save('小宝剑大药房(高新店)2018年销售数据.xlsx')

xlsx写操作

from openpyxl import load_workbook, Workbook
import os
# 1.load_workbook(文件名) —— 打开已经存在的文件
# Workbook() - 创建新文件
# os.path.exists(path):判断某个文件或目录是否存在,返回True或者False
# path参数:可以是一个文件夹,可以是一个文件(可以写相对路径)
if os.path.exists('学生信息.xlsx'):
    wb = load_workbook('学生信息.xlsx')
else:
    wb = Workbook()
# 2.查看工作表
sheetlist = wb.sheetnames
# 3.创建工作表:create_sheet
if '一年级一班' not in sheetlist:
    wb.create_sheet('一年级一班')
print(wb.sheetnames)
# 删除工作表:remove(工作表)
if '一年级一班1' in sheetlist:
    wb.remove(wb['一年级一班1'])
# 4.指定被创建的工作表
sheet = wb['一年级一班']
# 5.写入数据
sheet.cell(1,1).value = '张三'
# 6.保存关闭
wb.save('学生信息.xlsx')
# openpyxl模块对于读和写没有明确的界限,打开一个文件以后即可以读,也可以写

os模块

# os 模块
# Windws,linus,Macos,Android等操作系统对应一系列
# 操作方法(新建文件、移动、复制、删除、重命名等),os模块可以让我们使用代码
# 实现这些方法
import os
#一、os.listdir(path):查看指定路径下的所有条目(文件,文件夹)
namelist = os.listdir()
print(namelist)
datalist = os.listdir('成都链家二手房数据')
print(datalist)
for i in datalist:
    if i[i.rindex('.'):] == '.csv':
        pass
#二os.path.exists(path):看指定的文件,文件夹是否存在,返回True或者False
# 三 os.mkdir(path):创建一个指定名称的文件夹
# 四, os.rmdir(path):移除一个指定名称的文件夹,被移除文件夹必须保证为空
# if os.path.exists('成都链家') and os.path.exists('./成都链家/111'):
#     os.rmdir('./成都链家/111')
#     os.rmdir('成都链家')
#     os.mkdir('./成都链家')
# os.mkdir('./成都链家/111')

# 五、os.rename(str,dst):
#str:某个文件原名称;dst:被移动的路径和新名称
#将成都链家二手房数据文件中的csv文件的成都两个字去掉,在移动到成都链家文件夹
for name in os.listdir('成都链家二手房数据'):
    if name[name.rfind('.'):] == '.csv':
        old_path = f'./成都链家二手房数据/{name}'
        new_path = f'./成都链家/{name[2:]}'
        os.rename(old_path,new_path)
#六 os.system(命令) - 使用os模块的system方法执行linux命令
# 清屏命令
# windows --- >cls
os.system('cls')/{name[2:]}'
        os.rename(old_path,new_path)
#六 os.system(命令) - 使用os模块的system方法执行linux命令
# 清屏命令
# windows --- >cls
os.system('cls')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值