【python】csv、xls、xlsx、txt、pkl数据处理

csv文件

字符分隔值,其文件以纯文本形式存储表格数据(数据和文本)
用字符进行分割,不一定时逗号。

文件读取

利用csv库进行文件的读取,import csv,使用库中提供的函数进行文件的读写:

import csv
with("文件名.csv") as f:
    f_csv = csv.reader(f)
    #获取header
    header = next(f_csv)
    for row in f_csv:
        print(row)

reader返回一个迭代对象,首先获取表格的头,也就是属性(列表形式),直接for循环得到每一行数据(列表形式)。
补充:iter()函数可以创建迭代对象,迭代器是一个可以记住遍历位置的对象。

也可以使用DictReader(),读出的数据以字典形式输出。

文件写入

import csv
#创建header
header = ['','','']
#数据
data = [['','',''],['','','']]
with open("文件名.csv",mode='w',encoding="utf-8",newline="") as f:
    writer = csv.write(f)
    #一次写入一行,写入header
    writer.writerow(header)
    #一次写入多行
    writer.writerows(data)

xls文件

对表格数据进行操作吧!
用到的库:xlrd(读)、xlwt(写)

文件读取

用到了xlrd库

import xlrd
#获取工作簿对象
workbook = xlrd.open_workbook("文件名.xls")
#获取sheet
sheet_names = workbook.sheet_name()
sheet1 = workbook.sheet_by_index(0)
#sheet1 = workbook.sheet_by_name("sheet1名字")

#操作表
rows = sheet1.nrows
cols = sheet1.ncols

#读出数据
datas = []
for i in range(rows):
    datas.append(sheet1.row_values(i))
#列:sheet1.col_values(i)
#单元格:sheet1.cell_value(0.0)

文件写入

用到了xlwt库

import xlwt
#创建工作簿
workbook = xlwt.workbook(encoding="utf-8")
#创建sheet
sheet1 = workbook.add_sheet('sheet1')
sheet1.write(0, 0, '输入数据')
#保存
workbook.save("文件名.xls")

xlsx文件

使用openpyxl模块来操作xlsx文件的数据

读取

import openpyxl
workbook = openpyxl.load_workbook("文件名.xlsx")
#获取所有sheet名字
sheet_names = workbook.sheetnames
sheet1 = workbook[sheet_names[0]]
#sheet1 = workbook["sheet名字"]
#sheet1 = workbook.worksheets[0]

#统计行数和列数
rows = sheet1.max_row
cols = sheet1.max_column

#读出数据
datas = []
for row in sheet1.rows:
    data = []
    for cell in row:
        data.append(cell.value)
    datas.append(data)
#整行读,获取到某行的tuple对象
#for row in list(sheet1.rows)[0]
#单元格:sheet1['A1'].value/sheet1.cell(1,1).value

补充:sheet1.rows得到的是一个生成器,每个数据以元组类型存储。

txt文件

#按行读
with open('data.txt', 'r') as f:
    data = f.read()
data = data.split('\n')
#写
with open('data.txt', 'a') as f:
    f.write('data')

pkl文件

import pickle
with open('data.pkl', 'rb') as f:
    data = pickle.load(f)

f = open('data.pkl', 'wb')
pickle.dump(data, f)
f.close()

参考:
https://blog.csdn.net/bryanwang_3099/article/details/119731390
https://blog.csdn.net/sinat_28576553/article/details/81275650?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-81275650-blog-120823417.pc_relevant_multi_platform_whitelistv4&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-81275650-blog-120823417.pc_relevant_multi_platform_whitelistv4&utm_relevant_index=2

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值