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. Windows驱动开发-r3和r0通信

    用户部分代码: int main() { HANDLE hDevice = CreateFile(L, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ...

  2. 并行执行 Job【转】

    有时,我们希望能同时运行多个 Pod,提高 Job 的执行效率.这个可以通过 parallelism 设置. 这里我们将并行的 Pod 数量设置为 2,实践一下: Job 一共启动了两个 Pod,而且 ...

  3. GoJS最简单的实例

    复制如下内容保存到空白的.html文件中,用浏览器打开即可查看效果 <!DOCTYPE html> <html> <head> <meta charset=& ...

  4. other#nginx配置

    #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.log notice; #error ...

  5. tools.sublime.ConvertToUTF8

    sublime乱码,GBK乱码,安装插件ConvertToUTF8 下载ConvertToUTF8,解压,文件夹命名为ConvertToUTF8 sublime->Preferences-> ...

  6. mysql 添加索引语句

    1.PRIMARY  KEY(主键索引)        mysql>ALTER  TABLE  `table_name`  ADD  PRIMARY  KEY (  `column`  ) 2. ...

  7. [Codeforces #608 div2]1272B Blocks

    Description There are nnn blocks arranged in a row and numbered from left to right, starting from on ...

  8. mysql limit查询入门

  9. Spark学习入门(让人看了想吐的话题)

    这是个老生常谈的话题,大家是不是看到这个文章标题就快吐了,本来想着手写一些有技术深度的东西,但是看到太多童鞋卡在入门的门槛上,所以还是打算总结一下入门经验.这种标题真的真的在哪里都可以看得到,度娘一搜 ...

  10. Golang的常量定义及使用案例

    Golang的常量定义及使用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常量的定义 package main import ( "fmt" ) fu ...