Python对Excel操作详解

Python对Excel操作详解
Python对Excel操作详解

Python对Excel操作

详解

文档摘要:

本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd、xlwt 和xlutils模块。另外还演示了如何通过Tcl tcom包对excel操作。

关键字:

Python、Excel、xlrd、xlwt、xlutils、TCl、tcom

1Python简介

Python是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块。

与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。

2Python安装

Python目前的版本已经更新到3.4.0,本文使用的版本为2.7.5,所有的版本都可以在python官网https://www.360docs.net/doc/ff8495905.html,/下载,至于2.x和3.x版本的具体区别也可以在官网查看。

从官网下载了python 2.7.5安装文件python-2.7.5.msi后,直接双击就可以安装python了,可以选择安装路径,我改为C:\Python2.7.5\了,然后一路next就完成安装了,安装完成后在C盘下就多了一个文件夹Python2.7.5。

Python也是一种实时交互语言,可以通过自带的IDLE编写python语句并反馈回显信息,可以通过图1方式调出python IDLE。

图1

也可以在cmd下输入python,但默认情况下python并没有添加到windows环境变量

中,导致在cmd下输入python的时候出现提示“'python' 不是部或外部命令,也不是可运行的程序或批处理文件。”,windows下可执行文件在运行时首先在当前目录下搜索,因为进入cmd下默认路径一般为C:\Documents and Settings\Administrator>,而在这个路径下是找不到python的,所以提示出错,可以进入到python安装目录下,然后执行python就可以进入交互命令行模式下。如果懒的每次都进入python安装,此时需要将python安装路径添加到系统变量中,然后windows在执行命令的时候会去环境变量中查找路径,具体配置如图2所示,在Path中添加python的安装路径“C:\Python2.7.5;”,主要路径后面要加”;”分号表面这是一个路径的结束,此时无论在哪个路径下都可以执行python调出交互命令行。

图2

3Python语法入门

在Python简介中提到Python是一种直译式电脑编程语言,体现在语法中,如要将变

量a赋值为1,Tcl使用命令%set a 1(本文中为了区分Tcl和Python的命令,Tcl命令前会加上“%”,否则默认为Python命令),在python中命令为a = 1,输出a的值可以直接输入a,也可以通过print语句输出a的值,命令为print a(在python 3.0以后版本中,print不再是一个语句,而是一个函数,所以如果想要输出a,用法为print(a))。在Tcl 中求1和10的和或者变量之间的加减乘除运算需要使用expr命令,在python则直接写表达式就可以了,如图3所示。

图3

Python很多功能都是靠模块实现的,比如ftplib模块负责ftp功能的实现,math模块囊括了基本数学公式,如果我们想要引用这些模块,需要使用命令import 模块名称,如import ftplib和import math。如果想使用math模块中的函数floor,可以使用命令math.floor(28.5),语法为“模块.函数”,如果想要直接使用floor函数,必须提前引用,命令为from math import floor,那样就可以直接使用命令floor(28.5)了。如果觉得floor 这个函数名称太长了或者不好记忆,可以通过变量引用函数,如f = math.floor,这样变量f就充当了math.floor的功能了。上面提到的模块ftplib和math都是在python安装的时候已经安装了,而接下来重点介绍的xlrd、xlwt、xlutils模块都不是随python安装的。需要手动下载安装,第5节会详细介绍模块的安装。

当成功导入了某个模块后,可以通过函数dir (模块名)查看这个模块包含哪些函数,如果对某个函数的作用不了解,可以通过help函数查看,如help(math.pow) 本文只是带领大家入门,python的其他语法可以参考其它资料学习。

4Tcl对Excel操作

在使用python对excel操作之前搜索过如何通过Tcl对excel操作,Tcl本身没有提

供对excel操作的命令,可以通过tcom外部包来调用excel的接口实现,但是个人感觉实现起来比较麻烦,msdn上虽然提供了excel的接口,但示例都是针对VB脚本语言写的,Tcl 如果想要调用的话还需要转换,如下是一段简单的Tcl代码展示如何通过tcom对excel进行操作,但也花了本人不少时间琢磨。

# 加载tcom包

package require tcom

set filename "F:/1.xls"

# 创建com实例,打开工作表,下面四句都是套路

set excel [::tcom::ref createobject "Excel.Application"]

set workbooks [$excel Workbooks]

set workbook [$workbooks Open $filename]

set worksheets [$workbook Worksheets]

# "sheet1"为sheet的名称

set worksheet [$worksheets Item "sheet1"]

# 创建单元格对象

set cells [$worksheet Cells]

# 给单元格B2赋值为“hsdf”

$cells Item 2 B "hsdf"

# 获取sheet的个数并赋值给sheetCount

set sheetCount [$worksheets Count]

# 获取A1至A15单元的围对象

set range [$worksheet Range A1 A15]

# 给A1至A15单元赋值

$range Value2 "abcdefg"

# 获取A1至A15的值,并赋值给A,A是一个列表list

set A [$range Value2]

# 设置单元的背景色

set interior [$range Interior]

$interior Color [expr 0x00FFE0]

# 设置单元的前景色和字体大小、加粗、斜体、字体

set font [$range Font]

$font Color [expr 0xFF0000]

$font Bold 1

$font Size 10

$font Italic 0

$font Name "华文行楷"

# 设置单元格的宽度为自动调整

set entire [$range EntireColumn]

$entire AutoFit

# 保存文档

$workbook Save

# 显示Excel

$excel Visible 1

5xlwt和xlrd模块的安装

Python也是通过导入外部模块来实现对excel的操作,xlrd负责对excel的读取,xlwt 负责对excel的写入,xlutils依赖于xlrd和xlwt,可以复制excel文件。这三个包都可以在https://www.360docs.net/doc/ff8495905.html,/下载。本文使用的xlrd版本为0.8.0,xlwt版本为0.7.5。从网上下载好xlrd和xlwt后,解压缩到C:\Python2.7.5\Lib下,此时在命令行下输入import xlrd或者import xlwt,会出现提示ImportError: No module named xlwt,这表明还没有安装xlwt模块。

python 导入一个模块的过程要求有一个叫做“路径搜索”的操作过程,即是在文件系统“预先设定的区域”查找模块文件以加载模块的过程。这个预先设定的区域其实是python 搜索路径的一组目录。这个目录保存在sys.path中,如果你想知道python导入模块时会在哪些路径搜索模块,你可以执行以下命令查看搜索路径目录:

>>> import sys

>>> sys.path

['D:\\python\\shell\\2.7.5','C:\\Python2.7.5\\Lib\\idlelib','C:\\Python2.7.5\\l ib\\site-packages\\setuptools-1.3-py2.7.egg','C:\\Python2.7.5\\lib\\site-packag

python用win32com处理excel表格

1. Python 操作 Excel 的函数库 我主要尝试了 3 种读写 Excel 的方法: 1> xlrd, xlwt, xlutils: 这三个库的好处是不需要其它支持,在任何操作系统上都可以使用。 xlrd 可以读取 .xls, .xlsx 文件,非常好用;但因为 xlwt 不能直接修改 Excel 文档,必须得复制一份然后另存为其它文件,而且据说写复杂格式的 Excel 文件会出现问题,所以我没有选它来写 Excel 文件。 2> openpyxl: 这个库也是不需要其它支持的,而且据说对 Office 2007 格式支持得更好。 遗憾地是,我经过测试,发现它加载 Excel 文件的效率比 xlrd 慢 3 倍以上,内存使用在 10 倍以上,于是就放弃了。 3> win32com: Python Win32 扩展,这个库需要运行环境为 Windows+Office 对应版 本。由于 Python Win32 扩展只是把 COM 接口包装了一下,可以视为与 VBA 完全相同,不会有读写格式上的问题。尝试了一下用 win32com 读取 Excel 文件,效率还是比 xlrd 慢一些。 由于读取效率上 xlrd > win32com > openpyxl,所以我自然选择了 xlrd 用来读取统计报表;而最终输出的报表格式较复杂,所以选择了 win32com 直接操作 Excel 文件。 2. Python 里的关系型数据库 SQLite是一个非常轻量级的关系型数据库,很多语言和平台都内置 SQLite 支持,也是 iOS 和Android 上的默认数据库。Python 的标准库里也包含了sqlite3库,用起来非常方便。 3. 用 xlrd 读取 Excel 并插入数据库样例 如果数据量不大,直接用 Python 内部数据结构如 dict, list 就够了。但如果读取的几张表数据量都较大,增加个将数据插入数据库的预处理过程就有很大好处。一是避免每次调试都要进行耗时较长的 Excel 文件载入过程;二是能充分利用数据库的索引和 SQL 语句强大功能进行快速数据分析。 #!/usr/bin/python # -*- coding: gbk -*- import xlrd import sqlite3 # 打开数据库文件 device_city_db = sqlite3.connect('device_city.db') cursor = device_city_db.cursor() # 建表 cursor.execute('DROP TABLE IF EXISTS device_city') cursor.execute('CREATE TABLE device_city (device_id char(16) PRIMARY KEY, city varchar(16))') # 打开 device 相关输入 Excel 文件 device_workbook = xlrd.open_workbook('输入.xlsx')

python列表(list)操作

列表在python中感觉是最灵活的有序集合对象类型,有点像其他语言的数组的类型 列表可以嵌套,索引和分片操作 嵌套:l3 = ['a',['b','cc']] 索引:l3[1] 分片:l3[2:4] 已知列表:a = [1,2,3,4,5] python list 索引: 列表索引的下标默认是从第0个开始的,比如我们需要获取第1个元素1,那我们可以用a[0].如果需要获取 最后一个元素,那可以通过a[-1]。 1 append()方法 向列表的尾部插入数据 有点像push操作 它可以push大部分数据,比如数字,字符串到列表里, 比如: a.append(6) a.append(7) a.append([1,3]) 如果你要进行列表的合并的话,用下面的extend方法 2 extend()方法

b = ['a','b'] a.extend(b) print a 输出列表a的结果是[1,2,3,4,5,a,b] 3 insert()方法 比如 a.insert(1,66) 输出结果是[1, 66, 2, 3, 4, 5, 'a', 'b'] 4 remove()方法 a.remove(66) 输出的结果是:[1, 2, 3, 4, 5, 'a', 'b'] 删除列表里面指定的值,如果没有的话,报错: Traceback (most recent call last): File " ", line 1, in ValueError: list.remove(x): x not in list 4 pop方法 a.pop() 输出的结果是'b' a.pop(2) 输出的结果是3 如果你没有指定参数的话,默然是返回列表的最后一个字符,如果指定的话,返回当前指定的索引的值 5 index方法 a.index(2)

Python中执行系统命令常见的几种方法

Python中执行系统命令常见的几种方法 (1)os.system #这个方法是直接调用标准C的system()函数,仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息。 os.system(command)->exit_status Execute the command(a string)in a subshell. #如果再命令行下执行,结果直接打印出来 (2)os.popen #该方法不但执行命令还返回执行后的信息对象,是通过一个管道文件将结果返回。 popen(command[,mode='r'[,bufsize]])->pipeOpen a pipe to/from a command returning a file object. 例如: 好处在于:将返回的结果赋于一变量,便于程序的处理。 (3)使用模块commands模块 (status,result)=commands.getstatusoutput(cmd) status返回命令执行的返回值 result返回命令执行结果

注意1:在类unix的系统下使用此方法返回的返回值(status)与脚本或命令执行之后的返回值不等,这是因为调用了os.wait()的缘故,具体原因就得去了解下系统wait()的实现了。需要正确的返回值(status),只需要对返回值进行右移8位操作就可以了。 注意2:当执行命令的参数或者返回中包含了中文文字,那么建议使用subprocess。 (4)使用模块subprocess Subprocess是一个功能强大的子进程管理模块,是替换os.system,os.spawn*等方法的一个模块。 Class subprocess.Popen(args,bufsize=0,executable=None,stdin=None,stdout=None, stderr=None,preexec_fn=None, close_fds=True,shell=False,cwd=None,env=None,universal_newlines=False, startupinfo=None, creationflags=0,restore_signals=True,start_new_session=False,pass_fds=()) 有丰富的参数可以进行配置,可供我们自定义的选项多,灵活性高。之前我使用os.system 的时候遇到文件描述符被子进程继承的问题,后来通过close_fds=False这个参数来解决的。

教你在python在工作中“偷懒”:Excel自动化处理 word关键信息提取 自动化运营监控 自动发送邮件

教你用python在工作中“偷懒” Excel自动化处理/word关键信息提取/自动化运营监控/自动发送邮件 有些朋友在工作中会有这样的困惑:明明我从早忙到晚,为什么得到的评价还不高? 要知道,企业对一个员工的评价是出于“产出”而非“付出”。所以,如果把大量时间花在机械重复的工作上,不但工作效率不高,对个人发展来说也无甚帮助。 而这些工作,如果对于会点编程的人来说,往往通过几行代码就可以快速搞定了。 于是,我去了解了一下身边不同岗位(HR、产品、运营、市场、数据分析师等)每天需要面对的重复性劳动(肯定会有不全,欢迎补充~),总结了一些在工作中非常常见的例子,并且将源码整理好供参考。希望这些程序可以让你的工作更高效!(升职加薪了别忘了回来发红包哦~)那么如何将这些统统实现呢? 我将这些分为以下几类,大家可以自行评估,各取所需:

如何用python在工作中“偷懒”? 系统录入自动化 由于你经常需要不断的将一些信息录入系统,每一次录入的过程中你可能需要不断的点击一些按钮,面对这种情况,完全可以写一个自动脚本,每次代替你来执行这些点击的行为。

这里我们需要用到splinter: pip install splinter 这里写了一个自动登录邮箱的脚本,可以实现文本输入和网页点击:#coding=utf-8import timefrom splinter import Browserdef splinter(url): browser = Browser() #login 126 email websize browser.visit(url) #wait web element loading time.sleep(5) #fill in account and password browser.find_by_id('idInput').fill('xxxxxx') browser.find_by_id('pwdInput').fill('xxxxx') #click the button of login browser.find_by_id('loginBtn').click() time.sleep(8) #close the window of brower browser.quit()if __name__ == '__main__' splinter(websize)

pythonxlwtxlutils在excel里面如何插入一行数据

python xlwt,xlutils 在excel里面如何插入一行数据 import xlwt;import xlrd;from xlutils.copy import copy; #styleBoldRed = xlwt.easyxf('font: color-index red, bold on');#headerStyle = styleBoldRed;#wb = xlwt.Workbook();#ws = wb.add_sheet('sheetName');#ws.write(0, 0, 'Col1', headerStyle);#ws.write(0, 1, 'Col2', headerStyle);#ws.write(0, 2, 'Col3', headerStyle);#wb.save('fileName.xls');#open existed xls fileoldWb = xlrd.open_workbook('fileName.xls', formatting_info=True);oldWbS = oldWb.sheet_by_index(0)newWb = copy(oldWb);newWs = newWb.get_sheet(0);inserRowNo = 1newWs.write(inserRowNo, 0, 'value1');newWs.write(inserRowNo, 1, 'value2');newWs.write(inserRowNo, 2, 'value3');for rowIndex in range(inserRowNo, oldWbS.nrows): for colIndex in range(oldWbS.ncols): newWs.write(rowIndex + 1, colIndex, oldWbS.cell(rowIndex, colIndex).value);newWb.save('fileName.xls');print 'save

《Python程序设计》习题与答案

《Python程序设计》习题与参考答案 第1章基础知识 1.1 简单说明如何选择正确的Python版本。 答: 在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 2.x还是Python 3.x,最高支持到Python 2.7.6还是Python 2.7.9。这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。 尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3.x系列的最高版本(目前是Python 3.4.3)。 1.2 为什么说Python采用的是基于值的内存管理模式? 答: Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。 >>> x = 3 >>> id(x) 10417624 >>> y = 3 >>> id(y) 10417624 >>> y = 5 >>> id(y) 10417600 >>> id(x) 10417624 1.3 在Python中导入模块中的对象有哪几种方式? 答:常用的有三种方式,分别为 import 模块名[as 别名]

●from 模块名import 对象名[ as 别名] ●from math import * 1.4 使用pip命令安装numpy、scipy模块。 答:在命令提示符环境下执行下面的命令: pip install numpy pip install scipy 1.5 编写程序,用户输入一个三位以上的整数,输出其百位以上的数字。例如用户输入1234,则程序输出12。(提示:使用整除运算。) 答: 1)Python 3.4.2代码: x = input('Please input an integer of more than 3 digits:') try: x = int(x) x = x//100 if x == 0: print('You must input an integer of more than 3 digits.') else: print(x) except BaseException: print('You must input an integer.') 2)Python 2.7.8代码: import types x = input('Please input an integer of more than 3 digits:') if type(x) != types.IntType: print 'You must input an integer.' elif len(str(x)) != 4: print 'You must input an integer of more than 3 digits.' else: print x//100

Python语句、函数与方法的使用技巧总结

Python语句、函数与方法的使用技巧总结 显示有限的接口到外部 当发布python第三方package时,并不希望代码中所有的函数或者class可以被外部import,在__init__.py中添加__all__属性,该list中填写可以import 的类或者函数名,可以起到限制的import的作用,防止外部import其他函数或者类。 #!/usr/bin/env python # -*- coding: utf-8 -*- from base import APIBase from client import Client from decorator import interface, export, stream from server import Server from storage import Storage from util import (LogFormatter, disable_logging_to_stderr, enable_logging_to_kids, info) __all__ = ['APIBase', 'Client', 'LogFormatter', 'Server', 'Storage', 'disable_logging_to_stderr', 'enable_logging_to_kids', 'export', 'info', 'interface', 'stream'] with的魔力

with语句需要支持上下文管理协议的对象,上下文管理协议包含__enter__和__exit__两个方法。with语句建立运行时上下文需要通过这两个方法执行进入和退出操作。 其中上下文表达式是跟在with之后的表达式,该表达式返回一个上下文管理对象。 # 常见with使用场景 with open("test.txt", "r") as my_file: # 注意, 是__enter__()方法的返回值赋值给了my_file, for line in my_file: print line 知道具体原理,我们可以自定义支持上下文管理协议的类,类中实现__enter__和__exit__方法。 #!/usr/bin/env python # -*- coding: utf-8 -*- class MyWith(object): def __init__(self): print "__init__ method" def __enter__(self):

Python对Excel操作详解

Python对Excel操作 详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd、xlwt 和xlutils模块。另外还演示了如何通过Tcl tcom包对excel操作。 关键字: Python、Excel、xlrd、xlwt、xlutils、TCl、tcom

1Python简介 Python是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块。 与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。 2Python安装 Python目前的版本已经更新到3.4.0,本文使用的版本为2.7.5,所有的版本都可以在python官网https://www.360docs.net/doc/ff8495905.html,/下载,至于2.x和3.x版本的具体区别也可以在官网查看。 从官网下载了python 2.7.5安装文件python-2.7.5.msi后,直接双击就可以安装python了,可以选择安装路径,我改为C:\Python2.7.5\了,然后一路next就完成安装了,安装完成后在C盘下就多了一个文件夹Python2.7.5。 Python也是一种实时交互语言,可以通过自带的IDLE编写python语句并反馈回显信息,可以通过图1方式调出python IDLE。 图1

python一些常用方法

1.list 方法 一、创建一个列表 只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示: 与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。 二、访问列表中的值 使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示: print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5] 以上实例输出结果: 三、更新列表 你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示: list = ['physics', 'chemistry', 1997, 2000]; print "Value available at index 2 : " print list[2]; list[2] = 2001; print "New value available at index 2 : " print list[2];

以上实例输出结果: 四、删除列表元素 可以使用del 语句来删除列表的的元素,如下实例: list1 = ['physics', 'chemistry', 1997, 2000]; print list1; del list1[2]; print "After deleting value at index 2 : " print list1; 以上实例输出结果: 五、Python列表脚本操作符 列表对+ 和* 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。如下所示: Python 表达式结果描述 len([1, 2, 3])3长度 [1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]组合 ['Hi!'] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']重复 3 in [1, 2, 3]True元素是否存在于列表中 for x in [1, 2, 3]: print x, 1 2 3迭代

(整理)python操作excel.

You are here: Home?计算机?编程? Python操作Excel Python操作Excel 2012-09-01 老婆单位有时候有一些很大的 Excel 统计报表需要处理,其中最恶心的是跨表的 JOIN 查询。他们通常采取的做法是,把多个 Excel 工作簿合成一个工作簿的多个表格,然后再跑函数(VLOOKUP之类)去查。因为用的函数效率很低,在 CPU 打满的情况下还要跑几个小时。 然后我就看不过去了,我也不懂 Excel,不知道如何优化,但我想用Python+SQLite 总归是能够实现的。于是就尝试了一把,效果还不错,一分钟以内完成统计很轻松,其中大部分时间主要花在读 Excel 内容上。 1. Python 操作 Excel 的函数库 我主要尝试了 3 种读写 Excel 的方法: 1> xlrd, xlwt, xlutils: 这三个库的好处是不需要其它支持,在任何操作系统上都可以使用。xlrd 可以读取 .xls, .xlsx 文件,非常好用;但因为 xlwt 不能直接修改 Excel 文档,必须得复制一份然后另存为其它文件,而且据说写复杂格式的 Excel 文件会出现问题,所以我没有选它来写 Excel 文件。 2> openpyxl: 这个库也是不需要其它支持的,而且据说对 Office 2007 格式支持得更好。遗憾地是,我经过测试,发现它加载 Excel 文件的效率比 xlrd 慢 3 倍以上,内存使用在 10 倍以上,于是就放弃了。 3> win32com: Python Win32 扩展,这个库需要运行环境为 Windows+Office 对应版本。由于 Python Win32 扩展只是把 COM 接口包装了一下,可以视为与VBA 完全相同,不会有读写格式上的问题。尝试了一下用 win32com 读取 Excel 文件,效率还是比 xlrd 慢一些。 由于读取效率上 xlrd > win32com > openpyxl,所以我自然选择了 xlrd 用来读取统计报表;而最终输出的报表格式较复杂,所以选择了 win32com 直接操作 Excel 文件。 2. Python 里的关系型数据库 SQLite是一个非常轻量级的关系型数据库,很多语言和平台都内置 SQLite 支持,也是 iOS 和 Android 上的默认数据库。Python 的标准库里也包含了sqlite3库,用起来非常方便。

Python中常见的数据结构可以统称为容器

Python中常见的数据结构可以统称为容器(container)。序列(如列表和元组)、映射(如字典)以及集合(set)是三类主要的容器。 一、序列(列表、元组和字符串) 序列中的每个元素都有自己的编号。Python中有6种内建的序列。其中列表和元组是最常见的类型。其他包括字符串、Unicode字符串、buffer对象和xrange对象。下面重点介绍下列表、元组和字符串。 1、列表 列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能。 (1)、创建 通过下面的方式即可创建一个列表: 1 2 3 4list1=['hello','world'] print list1 list2=[1,2,3] print list2 输出: […hello?, …world?] [1, 2, 3] 可以看到,这中创建方式非常类似于javascript中的数组。 (2)、list函数 通过list函数(其实list是一种类型而不是函数)对字符串创建列表非常有效: 1 2list3=list("hello") print list3

输出: […h?, …e?, …l?, …l?, …o?] 2、元组 元组与列表一样,也是一种序列,唯一不同的是元组不能被修改(字符串其实也有这种特点)。(1)、创建 1 2 3 4 5 6t1=1,2,3 t2="jeffreyzhao","cnblogs" t3=(1,2,3,4) t4=() t5=(1,) print t1,t2,t3,t4,t5 输出: (1, 2, 3) (…jeffreyzhao?, …cnblogs?) (1, 2, 3, 4) () (1,) 从上面我们可以分析得出: a、逗号分隔一些值,元组自动创建完成; b、元组大部分时候是通过圆括号括起来的; c、空元组可以用没有包含内容的圆括号来表示; d、只含一个值的元组,必须加个逗号(,); (2)、tuple函数 tuple函数和序列的list函数几乎一样:以一个序列(注意是序列)作为参数并把它转换为元组。如果参数就算元组,那么该参数就会原样返回: 1t1=tuple([1,2,3])

九、Python (openpyxl)操作excel写支持xlsx格式(二)

pip install openpyxl(写,支持xlsx格式) 新建文件 #1.新建一个Excel wb=workbook.Workbook() #2.创建表单的方法 创建一个自定义的表单 wb.create_sheet('info',index=0) #3.另存为 保存工作簿 wb.save('D:\excel\pythonexcel.xlsx') 打开文件写入 #1.打开的工作簿 wb=load_workbook(filename) #2.定位到表单 sheet=wb['info'] #3.cell(I行,J列),必须从1开始 sheet.cell(1,1).value='姓名' #4.保存工作簿 wb.save('D:\excel\pythonexcel.xlsx') 源码 #!/usr/bin/python3 # encoding:utf‐8 import os from openpyxl import workbook from openpyxl import load_workbook ''' 支持xlsx格式写 ''' class excel(): def wirteExcle(self,filename,data): #新建一个Excel wb=workbook.Workbook() #创建表单的方法 创建一个自定义的表单 wb.create_sheet('info',index=0) #另存为 保存工作簿

wb.save(filename) #打开的工作簿 wb=load_workbook(filename) #定位到表单 sheet=wb['info'] c=1 for students in data: #3.标题cell(i行,j列),必须1开始 sheet.cell(1,1).value='姓名' sheet.cell(1,2).value='年龄' #内容(行,列,值)第一行=0,第一列=0 sheet.cell(c,1).value=students['name'] sheet.cell(c,2).value=students['age'] c+=1 #将工作簿以filename命名并保存 wb.save(filename) #5.关闭文件 wb.close() if __name__=='__main__': str= [{'name':'zhangshan','age':19}, {'name':'lisi','age':28}, {'name':'wangwu','age':59}] exl = excel() exl.wirteExcle('D:\excel\pythonexcel.xlsx',str) 打印execel内容

Python常见数据结构整理

Python常见数据结构整理 2014年10月15日tenking阅读23 次 Python中常见的数据结构可以统称为容器(container)。序列(如列表和元组)、映射(如字典)以及集合(set)是三类主要的容器。 一、序列(列表、元组和字符串) 序列中的每个元素都有自己的编号。Python中有6种内建的序列。其中列表和元组是最常见的类型。其他包括字符串、Unicode字符串、buffer对象和xrange对象。下面重点介绍下列表、元组和字符串。 1、列表 列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能。 (1)、创建 通过下面的方式即可创建一个列表: 1 2 3 4list1=['hello','world'] print list1 list2=[1,2,3] print list2 输出: […hello?, …world?] [1, 2, 3] 可以看到,这中创建方式非常类似于javascript中的数组。(2)、list函数

通过list函数(其实list是一种类型而不是函数)对字符串创建列表非常有效: 1 2list3=list("hello") print list3 输出: […h?, …e?, …l?, …l?, …o?] 2、元组 元组与列表一样,也是一种序列,唯一不同的是元组不能被修改(字符串其实也有这种特点)。(1)、创建 1 2 3 4 5 6t1=1,2,3 t2="jeffreyzhao","cnblogs" t3=(1,2,3,4) t4=() t5=(1,) print t1,t2,t3,t4,t5 输出: (1, 2, 3) (…jeffreyzhao?, …cnblogs?) (1, 2, 3, 4) () (1,)从上面我们可以分析得出: a、逗号分隔一些值,元组自动创建完成; b、元组大部分时候是通过圆括号括起来的; c、空元组可以用没有包含内容的圆括号来表示; d、只含一个值的元组,必须加个逗号(,);(2)、tuple函数

Python对Excel操作教程

Python 对Excel 操作详解文档摘要: 本文档主要介绍如何通过python 对office excel 进行读写操作,使用了xlrd 、xlwt 和xlutils 模块。另外还演示了如何通过Tcl tcom 包对excel 操作。 关键字: Python、Excel、xlrd 、xlwt 、xlutils、TCl 、tcom 1 Python 简介 Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。 与Scheme、Ruby、Perl 、Tcl 等动态语言一样,Python 具备垃圾回收功能,能够自动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python 虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller 之类的工具可以将Python 源代码转换成可以脱离Python 解释器运行的程序。 2 Python 安装 Python 目前的版本已经更新到3.4.0 ,本文使用的版本为2.7.5 ,所有的版本都可以在python 官网下载,至于 2.x 和 3.x 版本的具体区别也可以在官网查看。 从官网下载了python 2.7.5 安装文件后,直接双击就可以安装python

Python 也是一种实时交互语言,可以通过自带的IDLE 编写python 语句并反馈回显信息,可以通过图 1 方式调出python IDLE 。 图1 也可以在cmd下输入python ,但默认情况下python并没有添加到windows 环境变量中,导致在cmd下输入python的时候出现提示“ 'python'不是内部或外部命令,也不是可运行的程序或批处理文件。”,windows 下可执行文件在运行时首先在当前目录下搜索,因为进入cmd 下默认路径一般为C:\Documents and Settings\Administrator> ,而在这个路径下是找不到python 的,所以提示出错,可以进入到python 安装目录下,然后执行python 就可以进入交互命令行模式下。如果懒的每次都进入python 安装,此时需要将python 安装路径添加到系统变量中,然后windows 在执行命令的时候会去环境变量中查找路径,具体配置如图 2 所示,在Path 中添加python 的安装路径 “C:\Python2.7.5; ”,主要路径后面要加”;”分号表面这是一个路径的结束,此时无论在哪个路径下都可以执行python 调出交互命令行。 图2 3 Python 语法入门 在Python 简介中提到Python 是一种直译式电脑编程语言,体现在语法中,如要将变量 a 赋值为1,Tcl 使用命令%set a 1(本文中为了区分Tcl 和Python 的命令,Tcl 命令前会加上“ %”,否则默认为Python 命令),在python 中命令为a = 1,输出a的值可以直接输入a,也可以通过print语句输出a的值, 命令为print a (在python 3.0 以后版本中,print 不再是一个语句,而是一个函数,所以如果想要输出a,用法为print(a))。在Tel中求1和10的和或者变量之间

Python常见数据结构整理

Python常见数据结构整理 Python中常见的数据结构可以统称为容器(container)。序列(如列表和元组)、映射(如字典) 以及集合(set)是三类主要的容器。 一、序列(列表、元组和字符串) 序列中的每个元素都有自己的编号。Python中有6种内建的序列。其中列表和元组是最常见的类型。其他包括字符串、Unicode字符串、buffer对象和xrange对象。下面重点介绍下列表、元组和字符串。 1、列表 列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能。 (1)、创建 通过下面的方式即可创建一个列表: 输出: ['hello', 'world'] [1, 2, 3] 可以看到,这中创建方式非常类似于javascript中的数组。 (2)、list函数 通过list函数(其实list是一种类型而不是函数)对字符串创建列表非常有效: 输出: ['h', 'e', 'l', 'l', 'o'] 2、元组 元组与列表一样,也是一种序列,唯一不同的是元组不能被修改(字符串其实也有这种特点)。

输出: (1, 2, 3) ('jeffreyzhao', 'cnblogs') (1, 2, 3, 4) () (1,) 从上面我们可以分析得出: a、逗号分隔一些值,元组自动创建完成; b、元组大部分时候是通过圆括号括起来的; c、空元组可以用没有包含内容的圆括号来表示; d、只含一个值的元组,必须加个逗号(,); (2)、tuple函数 tuple函数和序列的list函数几乎一样:以一个序列(注意是序列)作为参数并把它转换为元组。如果参数就算元组,那么该参数就会原样返回: 输出: (1, 2, 3) ('j', 'e', 'f', 'f') (1, 2, 3) Traceback (most recent call last): File "F:\Python\test.py", line 7, in t4=tuple(123) TypeError: 'int' object is not iterable 3、字符串

python常用函数年初大总结

1.常用内置函数:(不用import就可以直接使用) help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝 eval_r(str) 表示合法的python表达式,返回这个表达式 dir(obj) 查看obj的name space中可见的name hasattr(obj,name) 查看一个obj的name space中是否有name getattr(obj,name) 得到一个obj的name space中的一个name setattr(obj,name,value) 为一个obj的name space中的一个name指向vale这个object delattr(obj,name) 从obj的name space中删除一个name vars(obj) 返回一个object的name space。用dictionary表示 locals() 返回一个局部name space,用dictionary表示 globals() 返回一个全局name space,用dictionary表示 type(obj) 查看一个obj的类型 isinstance(obj,cls) 查看obj是不是cls的instance issubclass(subcls,supcls) 查看subcls是不是supcls的子类 类型转换函数 chr(i) 把一个ASCII数值,变成字符 ord(i) 把一个字符或者unicode字符,变成ASCII数值 oct(x) 把整数x变成八进制表示的字符串 hex(x) 把整数x变成十六进制表示的字符串

python学习笔记-excel用例输入

python学习笔记(接口自动化框架V2.0) 这个是根据上次框架版本进行的优化 用python获取excel文件中测试用例数据 通过requets测试接口、并使用正则表达式验证响应信息内容生成xml文件测试报告 版本更新内容: 1. 整理了CreateTest.test_main()流程逻辑 2. 优化了testcase.xls文件格式 3. 添加了生成XML文件测试报告 代码如下: 1#!/usr/bin/env python 2# -*- coding: utf_8 -*- 3# 获取测试用例文件excel 4 5import xlrd 6import json 7 8 9class CreateExcel: 10def__init__(self): 11pass 12 13 @classmethod 14def open_excel(cls):

15 path = "testcase.xls" 16 workbook = xlrd.open_workbook(path) 17 table = workbook.sheets()[0] 18return table 19 20# 获取sheet 21 22 @classmethod 23def get_nrows(cls, table): 24 nrows = table.nrows 25return nrows 26 27# 获取行号 28 29 @classmethod 30def get_id(cls, table, nrows): 31 testid = [] 32for i in range(1, nrows): 33 testid.append(table.cell(i, 0).value) 34return testid 35 36 @classmethod 37def get_name(cls, table, nrows): 38 testname = [] 39for i in range(1, nrows): 40 testname.append(table.cell(i, 1).value) 41return testname 42 43# 获取用例name 44 45 @classmethod 46def get_data(cls, table, nrows): 47 testdata = [] 48for i in range(1, nrows): 49try: 50 data = json.loads(table.cell(i, 2).value) 51 testdata.append(data) 52except ValueError: 53 testdata.append(None) 54return testdata 55 56# 获取data接口参数 57 58 @classmethod 59def get_url(cls, table, nrows): 60 testurl = [] 61for i in range(1, nrows): 62 testurl.append(table.cell(i, 3).value) 63return testurl 64

Python程序设计基础教案16--列表类型2

授课教案

授课教案附页 教学设计说明一、旧课回顾 创建一个列表,列表中的元素依次为:姓名、班级,并完成: (1)输出该学生的基本信息(姓名、班级); (2)增加语文成绩 (3)增加英语成绩和数学成绩 (4)将性别这一项插入到姓名后面 (5)修改班级为:software1801 (6)删除语文成绩 任务分析: ?题干: 创建一个列表。考察列表的概念:列表是将各种不同类型的元素用逗号分隔 开,放到一对中括号里构成的数据类型。 创建一个列表,列表中的元素依次为:姓名、班级。 代码示例: ?问题(1):输出该学生的基本信息(姓名、班级) 考察列表中元素访问方法。列表中第i个元素可以用l[i]表示,因此可以使用 for循环,因此访问列表的第0个到第len(l)-1个元素。 代码示例1: 补充:列表本身可以当做一个序列。因此,访问列表中的每一个元素还有另 一种方法。 代码示例2:

方法一:使用range( )产生一个整数序列,表示列表l中每个元素的在列表中的位置(标号),然后用l[i]表示第i个元素。 方法二:直接把列表l本身看做一个序列,此时循环变量i表示列表l中的第i个元素。 ?问题(2):增加语文成绩 考察列表中增加元素的方法。问题(2)仅增加语文成绩,即仅增加一个元素,使用l.append( )方法。 代码示例: ?问题(3):增加英语成绩和数学成绩 考察列表中增加元素的方法。可以使用两次l.append( )方法,依次增加英文成绩和数学成绩。也可以使用l.extend( )函数,将英文成绩和数学成绩作为一个新的列表直接追加都原列表中。 代码示例: ?问题(4):将性别这一项插入到姓名后面 考察l.insert( )的用法。l.insert(i,x):把x查到列表的第i个位置。 代码示例: ?问题(5):修改班级为:software1801 考察里列表元素的修改。l[i]=x:将列表中第i个元素修改为x。

相关文档
最新文档