当前位置: 首页 > 工具软件 > CSV.swift > 使用案例 >

csv文件

时宾实
2023-12-01

csv文件

csv也叫逗号分隔值文件 —— 每一行内容是通过逗号来区分出不同。

csv文件可以直接通过excel打开。以行列保存显示文件,相对excel 他只能保存数据,不能保存公式和函数

csv.reader(文件对象) —— 获取文件内容,并且以列表为单位返回每一行内容

csv的读操作:

import csv

# 1) 创建打开csv
"""
文件对象 = open()
"""
#  2)  创建reader 获取文件内容
# csv.reader(文件对象)  ——  获取文件内容,并且以列表为单位返回每一行内容
# csv.DictReader(文件对象)  —— 获取文件内容返回一个迭代器 ,并且以字典为单位返回开始的每一行内容

f = open('电影.csv','r',encoding="utf-8")

# read = csv.reader(f)
# print(list(read))

read= csv.DictReader(f)
print(next(read))

from re import *
with open('lagou.csv',encoding='utf-8') as f:
    reader = csv.DictReader(f)
# 处理数据
    cities = {}
    for i in reader:
        c = i['city']
        m = i['salary']
        result=findall(r'(\d+)k-(\d+)k',m)
        # print(result)
        if not result:
            continue
        start,end=result[0]
        moneys = cities.get(c, [])
        print(moneys)
        moneys.append((int(start) + int(end))/2)
        cities[c] = moneys

csv 的写操作:

1) 打开文件。f = open(‘data.csv’, ’ a’, )

1. csv文件写操作
1)打开文件
f = open('data.csv', 'w', encoding='utf-8')
# 2)创建writer对象
"""
a. csv.writer(文件对象)        -       创建writer对象,这个对象在写入数据的时候一行对应一个列表

b. csv.DictWriter(文件对象, 键列表)        -   创建writer对象,以字典为单位写入数据
"""
witer = csv.writer(f)
witer.writerows([
['姓名', '出生日期', '性别', '电话'],
['张三', '19998-7-5', '男', '119']
])


# # 一次写入一行内容
# writer.writerow(['姓名', '出生日期', '性别', '电话'])
# writer.writerow(['小明', '1999-9-9', '男', '110'])
#
# # 一次写入多行内容
# writer.writerows([
#     ['小花', '2000-3-24', '女', '120'],
#     ['张三', '19998-7-5', '男', '119']
# ])

# b.=====================以字典为单位写入一行内容==========================
# writer = csv.DictWriter(f, ['姓名', '出生日期', '性别', '电话'])
#
# 写入文件头(将字典的键写入到文件开头)
writer.writeheader()

# 一次写入一行内容
writer.writerow({'姓名': 'xiaoming', '出生日期': '1999-9-9', '电话':'110', '性别': '男'})
# 一次写入多行内容
writer.writerows([
    {'姓名': 'xiaohua', '出生日期': '1999-9-9', '电话':'110', '性别': '男'},
    {'姓名': 'zhangsan', '出生日期': '1999-9-9', '电话':'110', '性别': '男'}
])

虚拟环境:程序员需要自己创建的培养python环境。(前提:有系统环境)

系统环境:安装python的时候计算机提供的环境

环境的作用:1:提供python解释器,2:提供第三方库

虚拟环境的存在可以让第三方库或者项目分开管理。

创建虚拟环境的建议:1:工作的时候一个项目一个虚拟环境,并且将虚拟环境放在项目中。

2: 学习的时候:一类项目一个虚拟环境,不同类别的虚拟环境全部放在一个地方。

怎么创建虚拟环境:1:使用pycharm 创建 。2:使用指令创建

认识excel文件

工作簿:一个excel文件叫做一个工作簿

工作表:一个工作簿中可以有多个工作表,至少一个工作表,

单元格:是excel 中保存数据的基本单位。

行号和列号:确定单元格的位置

获取excel文件内容:

import openpyxl
# 打开excel文件
#workboob = openpyxl.open(文件路径)

# openpyxl.load_workbook(文件路径)

workboob = openpyxl.open('三国人物数据.xlsx')

openpyxl.load_workbook('三国人物数据.xlsx')
# 获取工作簿中所有的工作表的表名
result = workbook.sheetnames
print(result)

获取工作簿对象

工作簿对象.active —— 获取活跃表(选中的表)

工作簿对象[工作表名称] —— 获取指定名字对用的工作表

workbook= openpyxl.load_workbook('三国人物数据.xlsx')
sheet1 = workbook.active
print(sheet1)


sheet2 = workbook['三国武将数据']
print(sheet2)


result= workbook.sheetnames
print(result)

获取单元:

工作表对象.cell(行号,列表)

# cell1 = sheet2.cell(8, 1)
# cell2 = sheet2.cell(12, 1)
# print(cell1, cell2)

获取单元格内容

单元格对象.value

cell1 = sheet2.cell(8,1)
cell2 = sheet2.cell(12,1)
print(cell1,cell2)

print(cell1.value,cell2.value) # 获取内容

获取最大行号和列号(保存数据的有效行和列)

工作表对象.max_row

工作表对象.max_column

print(sheet2.max_row)
print(sheet2.max_column)
column1 = []
for row in range(1,sheet2.max_row+1):
    cell = sheet2.cell(row,1)
    column1.append(cell.value)
print(column1)

#注意:定义列表的位置不同

# 获取第一列到第3列所有的数据
for col in range(1, 4):
    column = []
    for row in range(1, sheet2.max_row+1):
        cell = sheet2.cell(row, col)
        column.append(cell.value)
    print(column)

excel文件的写操作

不管以什么方式对excel 操作,都必须保存

  • import  openpyxl
    
    # 1:新建工作簿
    workbook = openpyxl.Workbook()
    # 2:保存。工作簿对象.save(文件路径)
    workbook.save('.student.xlsx')
    # 实际中需要新建工作簿,需要判断工作簿是否已经存在,如果存在就不需要新建。
    #用异常捕获判断文件是否存在
    #方法一
    try:
        workbook = openpyxl.open('files/student2.xlsx')
    except FileNotFoundError:
        workbook = openpyxl.Workbook()
        workbook.save('files/student2.xlsx')
        
        
    # 方法二:
    import os
    # os.path.exists(文件路径)  -  判断指定文件是否存在,存在返回True,不存在返回False
    if os.path.exists('files/student2.xlsx'):
        workbook = openpyxl.open('files/student2.xlsx')
    else:
        workbook = openpyxl.Workbook()
        workbook.save('files/student2.xlsx')
    
    

    工作表的写操作
    新建工作表:工作簿对象.create_sheet(表名,下标)

    # 2. 工作表的写操作
    # 1)新建工作表
    # 工作簿对象.create_sheet(表名, 下标)
    # workbook.create_sheet()
    # workbook.create_sheet('Python')
    # workbook.create_sheet('Java', 0)
    # workbook.save('files/student2.xlsx')
    
    # 实际中的新建表:没有的时候才新建,有的时候直接打开
    if 'Python' in workbook.sheetnames:
        sheet = workbook['Python']
    else:
        sheet = workbook.create_sheet('Python')
        workbook.save('files/student2.xlsx')
    

    删除工作表:

    工作簿对象.remove(工作表对象)

    # 2)删除工作表
    # 工作簿对象.remove(工作表对象)
    # workbook.remove(workbook['Sheet1'])
    # workbook.save('files/student2.xlsx')
    
    # 实际中删除表:存在的时候才能删
    if 'Sheet1' in workbook.sheetnames:
        workbook.remove(workbook['Sheet1'])
        workbook.save('files/student2.xlsx')
    

    单元格写操作:

    # 3.单元格的写操作
    # 单元格对象.value = 数据
    java_sheet = workbook['Java']
    java_sheet.cell(1, 3).value = '电话'
    java_sheet.cell(2, 1).value = None
    java_sheet.cell(4, 2).value = 'stu003'
    
    workbook.save('files/student2.xlsx')
    
 类似资料: