1. 操作csv表格

使用的库 csv

1. csv文件里读取数据

代码

1. 以列表形式打开

import csv

f = open('csv_test.csv', 'r')       # 打开csv文件
csv_reader = csv.reader(f) # 将打开的文件装换成csv可读的对象
for each in csv_reader: # 打印,结果是个列表
print(each)
f.close()

结果

['name', 'age', 'score']
['张三', '18', '100']
['王二', '17', '98']
['麻子', '20', '99']

2.以字典形式打开

import csv

f = open('csv_test.csv', 'r')       # 打开csv文件
csv_reader = csv.DictReader(f) # 将打开的文件装换成csv可读的对象,注意是DictReader()
for each in csv_reader:
print(each['name'])
f.close()

结果

张三
王二
麻子

说明

不能直接print(csv_reader) 结果为

<_csv.reader object at 0x7f67f2328198>(第一种)

<csv.DictReader object at 0x7f29ef0a4710>(第二种)

以字典形式打开会将表头作为字典的key,而其余的每一行会成为字典的value

2. 将数据写进csv文件

代码

1.以列表的方式

import csv

contents = [['id', 'name', 'hobby'],
['001', '老王', 'Java'],
['002','老胡','Python'],
['003','老李','PHP']] with open('csv_test2.csv', 'a', newline='') as f:
csv_writer = csv.writer(f)
for each in contents:
csv_writer.writerow(each)

结果

id name hobby
1 老王 Java
2 老胡 Python
3 老李 PHP

2.以字典的方式

import csv

header = ['id', 'name', 'hobby']
contents = [{'id':'1','name':'老王','hobby':'Java'},
{'id':'2','name':'老胡','hobby':'Python'},
{'id':'3','name':'老李','hobby':'PHP'}] with open('csv_test4.csv', 'a', newline='') as f:
csv_writer = csv.DictWriter(f, header)
csv_writer.writeheader()
for each in contents:
csv_writer.writerow(each)

结果

id name hobby
1 老王 Java
2 老胡 Python
3 老李 PHP

说明

打开新的文件时需要newline='',否则会产生空行

上面的代码也可以用csv_writer.writerows(contents)实现(两种均可)

以字典形式写入时必须先写头具体操作见代码


2. 操作excel表格

使用的库 xlrd(读), xlwt(写)

1. 从excel文件里读取数据

import xlrd

book = xlrd.open_workbook('excel_test1.xls') # 打开excel文件
sheet_1 = book.sheets()[0] # 打开第一张表 num_rows = sheet_1.nrows # 获取当前表的所有的行数
num_cols = sheet_1.ncols # 获取当前表的所有的列数 # 遍历行, 会将每一行以列表的形式输出
for row in range(num_rows):
row_values = sheet_1.row_values(row) # 使用的函数是row_values()
print(row_values) # 遍历列, 会将每一列以列表的形式输出
for col in range(num_cols):
col_values = sheet_1.col_values(col) # 使用的函数是col_values()
print(col_values) # 遍历单元格, 从上到下从左到右输出每一个单元格的内容
for row in range(num_rows):
for col in range(num_cols):
cell_value = sheet_1.cell_value(row, col) # 使用的函数是cell_value()
print(cell_value)

说明

主要函数,属性

book = xlrd.open_workbook('excel_test1.xls') # 打开excel文件

sheet_1 = book.sheets()[0] # 打开第一张表

num_rows = sheet_1.nrows # 获取当前表的所有的行数

num_cols = sheet_1.ncols # 获取当前表的所有的列数

row_values = sheet_1.row_values(row) # 使用的函数是row_values()

col_values = sheet_1.col_values(col) # 使用的函数是col_values()

cell_value = sheet_1.cell_value(row, col) # 使用的函数是cell_value()

注意xlrd不可以改动excel文件

2. 将数据写进excel文件中

import xlwt

# 创建Workbook对象
book = xlwt.Workbook(encoding='utf-8', style_compression=0) '''
Workbook类初始化时有encoding和style_compression参数
encoding='utf-8',为输入中文
style_compression,表示是否压缩
''' # 添加表格
sheet = book.add_sheet('sheet1', cell_overwrite_ok=True) '''
sheet1为表格的名称
cell_overwrite_ok,表示是否可以覆盖单元格
''' # 向表sheet1中添加数据
sheet.write(0, 0, 'id') # 前两个参数为单元格坐标,这里表示第一行第一列(从0开始),后面为内容
sheet.write(0,1, 'name')
sheet.write(1,0, '1')
sheet.write(1,1, '老胡') # 保存到指定的Excel文件中
book.save('excel_test2.xls')

说明

主要函数

book = xlwt.Workbook(encoding='utf-8', style_compression=0) # 创建Workbook对象

sheet = book.add_sheet('sheet1', cell_overwrite_ok=True) # 添加表格

sheet.write(0, 0, 'id') # 前两个参数为单元格坐标,这里表示第一行第一列(从0开始),后面为内容

book.save('excel_test2.xls') # 保存文件

Python 操作csv和excel表格的更多相关文章

  1. python操作csv和excel文件

    1.操作csv文件 1).读取文件 import csv f=open("test.csv",'r') t_text=csv.reader(f) for t,i in t_text ...

  2. Python操作CSV和Excel

    概述 csv是最通用的文件格式,本质是文本文件,用记事本即可打开.同一行中每个字段间用逗号分隔,在csv中显示的是在不同单元格中,在记事本中显示的是一行中用逗号分隔. xls是excel专用格式,是二 ...

  3. Python将多个excel表格合并为一个表格

    Python将多个excel表格合并为一个表格 生活中经常会碰到多个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个.诸如此类的问题有很多.除 ...

  4. Python导出数据到Excel表格-NotImplementedError: formatting_info=True not yet implemented

    在使用Python写入数据到Excel表格中时出现报错信息记录:“NotImplementedError: formatting_info=True not yet implemented” 报错分析 ...

  5. Python操作csv文件

    1.什么是csv文件 The so-called CSV (Comma Separated Values) format is the most common import and export fo ...

  6. 数学建模之Python操作csv文件

    1.用Python通过csv文件里面的某一列,形成键值,然后统计键在其他列出现的次数. import pandas as pd import numpy as np import csv import ...

  7. python 操作openpyxl导出Excel 设置单元格格式以及合并处理

    贴上一个例子,里面设计很多用法,根据将相同日期的某些行合并处理. from openpyxl import Workbook from openpyxl.styles import Font, Fil ...

  8. Python 使用openpyxl导出Excel表格的时候,使用save()保存到指定路径

    在使用openpyxl导出Excel表格的使用,如何指定导出的路径呢. 使用sava(filename),会保存到当前执行文件的路径下. 使用sava("/tmp/{}.xlsx" ...

  9. Python脚本:实现excel表格导入到数据库,支持mysql,postgresql,MongoDB

    import xlrd,re from datetime import datetime from xlrd import xldate_as_tuple # 判断上传表格是否与模板要求一致 def ...

随机推荐

  1. Swift 语法糖then

    then是一个swift初始化库,只有80几行的代码库,确可以让初始化变得很优雅. 1.使用then初始化AnyObject,这里以初始化控件为例 lazy var label = UILabel() ...

  2. 7.6 CLI 管理Varnish

    ./varnishd -f /usr/common/varnish/etc/varnish/ -a 测试: 代理tomcat服务器地址:http://172.20.10.5:1111/ telnet ...

  3. maven package跳过测试

    mvn clean package -DskipTests 或者 mvn clean package -Dmaven.test.skip=true 区别 -DskipTests,不执行测试用例,但编译 ...

  4. 吴裕雄--天生自然java开发常用类库学习笔记:定时调度

    // 完成具体的任务操作 import java.util.TimerTask ; import java.util.Date ; import java.text.SimpleDateFormat ...

  5. Golang的基础数据类型-浮点型

    Golang的基础数据类型-浮点型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.浮点型概述 Go语言提供两种精度的浮点数,即float32和float64,其中float32 ...

  6. 【LeetCode】课程表 II

    [问题]现在你总共有 n 门课需要选,记为 0 到 n-1.在选修某些课程之前需要一些先修课程.例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及 ...

  7. JPA#Interfaces总结

    _开局一张图,内容全靠编 震惊:某小白熟练使用了JpaRepository和JpaSpecificationExecutor,就在简历上写下了,精通SpringData Jpa. 震惊,如果想熟练的使 ...

  8. tools.eclipse.内存配置

    环境:jdk1.7+eclipse luna 选择:Run ->Run Configurations, 在弹出框右侧中选择Arguments, 在VM arguments最后加入 -Xms256 ...

  9. .NET 一次读取几百条数据优化,从原来30分钟优化到30秒

    1.全部数据读取到内存, 不要使用string,而是使用stringbuilder,stringbuilder的效率非常高 2.添加到数据库 不要使用excute,而是使用事务,几百万条数据会请求数据 ...

  10. JAVA程序中常用概念介绍

    一.关键字.引用.直接量.变量.长量概念 1.关键字 java内部定义的java语言专用的单词,这些单词具有特殊含义,开发人员在定义自己声明的名称时,应该避开这些专用的单词.这些专用的单词也就称之为j ...