CSV EXCEL 文件操作

csv

写入csv文件

import csv

# 元祖列表
data = [
    ('ken', '13', '01'),
    ('tom', '14', '02')
]

items = [
    {
        'name': 'bill',
        'age': '14',
        'id': '03'
    },
    {
        'name': 'jerry',
        'age': '24',
        'id': '04'
    }
]

# 字典转列表
data2 = [i.values() for i in items]

with open('test_csv.csv', 'w', newline='') as fp:
    writer = csv.writer(fp)
    writer.writerow(['name', 'age', 'id']) # 写入单行
    writer.writerows(data) # 写入多行
    writer.writerows(data2)

读取csv文件

# 读取csv文件
with open('test_csv2.csv', 'r') as fp:
    # reader = csv.reader(fp) # 以列表返回
    # row = [i for i in reader]
    # print(row)
    #>>> [['name', 'age', 'id'], ['ken', '13', '01'], ['tom', '14', '02'], ['bill', '14', '03'], ['jerry', '24', '04']]

    dict_reader = csv.DictReader(fp) # 以OrderedDict列表返回
    for row in dict_reader:
        print(dict(row)) # OrderedDict转dict
    #>>>    {'name': 'ken', 'age': '13', 'id': '01'}
    #       {'name': 'tom', 'age': '14', 'id': '02'}
    #       {'name': 'bill', 'age': '14', 'id': '03'}
    #       {'name': 'jerry', 'age': '24', 'id': '04'}

Excel文件

写入

import xlwt

data = [
    {
        'name': 'ken',
        'age': '12',
        'id': '001'
    },
    {
        'name': 'tom',
        'age': '33',
        'id': '002'
    }
]

# 字典转列表
value_li = [list(d.values()) for d in data]
#>>> [['ken', '12', '001'], ['tom', '33', '002']]

# 写入文件
新建Excel文件
wb = xlwt.Workbook()
# 新建表
ws = wb.add_sheet('Python', cell_overwrite_ok=True)

# 写入数据(行, 列, 数据)
# ws.write(0, 0, 'python')

# 写入表头
ws.write(0, 0, 'name')
ws.write(0, 1, 'age')
ws.write(0, 2, 'id')

# 数据行数
row_num = len(value_li)  # 2
# 数据列数
column_num = 3

# 写入数据
for i in range(1, row_num + 1):
    for j in range(0, column_num):
            ws.write(i, j, value_li[i-1][j])

# 保存
wb.save('test.xls')


读取

import xlrd
# 读取文件
wb = xlrd.open_workbook('test.xls')
ws_count = wb.nsheets

# 读取表
# ws = wb.sheets()[0]
ws = wb.sheet_by_name('Python')

# 读取行
row_vlaue = ws.row_values(0) # 第一行数据
# 读取列
row_column = ws.col_values(0) # 第一列数据
# 读取单元格
cell1 = ws.cell(1, 2).value # 第1行2列单元格数据
# 根据行列读取
cell2 = ws.row(1)[0].value # 第2行1列的数据

print(cell2)

# 行数, 列数
rows_num = ws.nrows
cols_num = ws.ncols
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值