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/7a12609841.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/7a12609841.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\\lib\\site-packages\\setuptools-1.3-py2.7 .egg','C:\\Python2.7.5\\lib\\site-packages\\xlutils-1.7.0-p y2.7.egg','C:\\Windows\\system32\\python27.zip','C:\\Python 2.7.5\\DLLs','C:\\Python2.7.5\\lib','C:\\Python2.7.5\\lib\\ plat-win',

'C:\\Python2.7.5\\lib\\lib-tk','C:\\Python2.7.5','C:\\Pytho n2.7.5\\lib\\site-packages','C:\\Python2.7.5\\lib\\site-pac kages\\win32','C:\\Python2.7.5\\lib\\site-packages\\win32\\ lib','C:\\Python2.7.5\\lib\\site-packages\\Pythonwin'] 在sys.path中找到一个路径为'C:\\Python2.7.5\\lib',所以我们把模块解压缩到这个目录下。命令>>>sys.path.append('C:\\Python2.7.5\\lib')在最后添加一个目录,sys.path.insert(0,' C:\\Python2.7.5\\lib ')在第一位插入一个目录。

解压缩完成并放在正确目录后,在cmd下进入package当前目录,然后输入命令“C:\Python2.7.5\Lib\xlrd-0.8.0>python setup.py install”,安装完成后可以输入import xlrd,dir(xlrd)来确认是否已经安装正确。

6xlrd简单使用方法

>>>import xlrd

>>>excel = xlrd.open_workbook("C:\Users\HuZhangdong\Desktop\ASB测试床环境信息图.xls") #打开文件并将对象存储到excel中>>>sheet = excel.sheet_by_index(0) #通过索引读取sheet对象,第一个sheet的索引为"0"

>>>row_3 = sheet.row_values(2) #读取第3行的所有数据,并以列表的形式存储到row_3中

>>>col_3 = sheet.col_values(2) #读取第3列的所有数据,并以列表list的形式存储到col_3中

>>>cell_12_7 = sheet.cell_value(11,6) #读取第12行第7列的数据,并存储到cell_12_7中

>>>cell_11_11 = sheet.cell(10,10).value #读取第11行第11列的数据,并存储到cell_11_11中

>>>cell_7_8 = sheet.row(6)[7].value #读取第7行第8列的数据

>>>cell_7_8 = sheet.cel(7)[6].value #读取第8列第7行的数据

>>>num_rows = sheet.nrows #读取sheet的总行数>>>num_cols = sheet.ncols #读取sheet的总列数

基本上面的命令已经可以满足目前对excel读取的操作了,接下给大家讲解xlwt的用法。

7xlwt简单使用方法

#-*- coding: UTF-8 -*- #设置编码格式为 utf-8

import os,xlwt,datetime #导入模块

data =xlwt.Workbook() #新建一个Workbook

sheet = data.add_sheet(u"sheet") #新建一个sheet,名称为'sheet'

style1 = xlwt.XFStyle() #创建格式style1

style2 = xlwt.XFStyle()

style3 = xlwt.XFStyle()

#设置字体格式

font1 = xlwt.Font() #创建font1

https://www.360docs.net/doc/7a12609841.html, = 'Times New Roman' #字体为'Times New Roman' font1.bold = True #加粗

font1.colour_index = 2 #字体颜色为红色,0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta,

7 = Cyan

font1.underline = xlwt.Font.UNDERLINE_DOUBLE #下划线类型,UNDERLINE_DOUBLE 代表双下划线,另外还有 UNDERLINE_NONE, UNDERLINE_SINGLE, UNDERLINE_SINGLE_ACC, UNDERLINE_DOUBLE, UNDERLINE_DOUBLE_ACC

font1.escapement = xlwt.Font.ESCAPEMENT_SUPERSCRIPT #设置上标

font1.family = xlwt.Font.FAMILY_ROMAN

font1.height = 0x190 #0x190是16进制,换成10进制为400,然后除以20,就得到字体的大小为20

style1.font = font1 #将创建的font1字体格式应用到style1上

font2 = xlwt.Font() #创建font2

https://www.360docs.net/doc/7a12609841.html, = "Algerian" #字体为'Algerian'

font2.colour_index = 3 #字体颜色为绿色

font2.italic = True #斜体

font2.struck_out = True #删除线

font2.height = 0x258 #字体大小为30

style2.font = font2 #将创建的font2字体格式应用到style2上

#设置列宽

sheet.col(0).width = 6000

sheet.col(1).width = 12000

sheet.set_col_default_width(2)

#设置单元格对齐方式

alignment = xlwt.Alignment() #创建alignment

alignment.horz = xlwt.Alignment.HORZ_CENTER #设置水平对齐为居中,May be: HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED

alignment.vert = xlwt.Alignment.VERT_CENTER #设置垂直对齐为居中,May be: VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED

style3.alignment = alignment #应用alignment到style3上

#插入时间

style3.num_format_str = 'YYYY-MM-DD HH:MM:SS' #设置时间格式

sheet.write(1,1,datetime.datetime.now(),style3) #在第2行第2列插入当前时间,格式为style3

#设置单元格背景颜色

pattern_yellow = xlwt.Pattern() #创建pattern_yellow

pattern_yellow.pattern = xlwt.Pattern.SOLID_PATTERN #设置填充模式为全部填充

pattern_yellow.pattern_fore_colour = 5 #设置填充颜色为yellow黄色

style1.pattern = pattern_yellow #把设置的pattern应用到style3上

pattern_red = xlwt.Pattern() #创建pattern_red

pattern_red.pattern = xlwt.Pattern.SOLID_PATTERN #设置填充模式为全部填充

pattern_red.pattern_fore_colour = 2 #设置填充颜色为red 红色

style2.pattern = pattern_red #把设置的pattern应用到style4上

#设置单元格边框

borders = xlwt.Borders() #创建borders

borders.left = xlwt.Borders.DASHED #设置左边框的类型为虚线 May be: NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR, MEDIUM_DASHED, THIN_DASH_DOTTED, MEDIUM_DASH_DOTTED, THIN_DASH_DOT_DOTTED, MEDIUM_DASH_DOT_DOTTED,

SLANTED_MEDIUM_DASH_DOTTED, or 0x00 through 0x0D.

borders.right = xlwt.Borders.THIN #设置右边框的类型为细线

borders.top = xlwt.Borders.DOTTED #设置上边框的类型为打点的

borders.bottom = xlwt.Borders.THICK #设置底部边框类型为粗线

borders.left_colour = 0x10 #设置左边框线条颜色

borders.right_colour = 0x20

borders.top_colour = 0x30

borders.bottom_colour = 0x40

style1.borders = borders #将borders应用到style1上style2.borders = borders #将borders应用到style2上

sheet.write(3, 0, 'HuZhangdong', style1) #在第4行第1列写入'HuZhangdong',格式引用style1

sheet.write(4, 0, 'YinMengran' , style2) #在第5行第1列写入'YinMengran',格式引用style2

data.save(u'e:\\3.xls') #保存到 e:\\3.xls

函数xlwt.Workbook()只能新建一个excel文档,不能打开一个

已经存在的文档,下一章会讲解如何通过xlutils修改一个已经存在

的excel文档。

8xlutils简单使用方法

本章将讲解如何使用xlutils编辑一个已经存在的文档,需要导

入xlutils模块,下载地址是https://www.360docs.net/doc/7a12609841.html,/,模

块成功安装后就开始编写脚本吧。

#-*- coding:utf-8 -*- #设置当前编码格式为utf-8

import xlwt #导入xlwt模块

import xlrd #导入xlrd模块

from xlutils.copy import copy #导入import模块的copy

函数,接下来就可以直接使用函数copy了。

fileName = "E:\\4.xls"

sheetName = "sheet1"

styleBoldRed = xlwt.easyxf('font: color-index red, bold on') #设置字体,颜色为红色,加粗

oldWb = xlrd.open_workbook(fileName, formatting_info=True) #使用xlrd.open_workbook函数打开文件,formatting_info=True

表示保留该文件的格式

newWb = copy(oldWb) #通过copy函数把oldWb copy到newWb,

然后通过编辑newWb来实现编辑已经存在的文件。

newWs = newWb.get_sheet(0) #读取第一个sheet

newWs.write(4, 0, "value1",styleBoldRed) #第5行第1列写入值“value1”,格式采用styleBoldRed。

newWs.write(4, 1, "value2",styleBoldRed) #第5行第2列写入值“value2”

newWs.write(4, 2, "value3",styleBoldRed) #第5行第3列写入值“value3”

newWb.save(fileName) #文件保存为"E:\\4.xls"

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的中文处理

Python的中文处理 一、使用中文字符 在python源码中如果使用了中文字符,运行时会有错误,解决的办法是在源码的开头部分加入字符编码的声明,下面是一个例子: #!/usr/bin/env python # -*- coding: cp936 -*- Python Tutorial中指出,python的源文件可以编码ASCII以外的字符集,最好的做法是在#!行后面用一个特殊的注释行来定义字符集: # -*- coding: encoding -*- 根据这个声明,Python会尝试将文件中的字符编码转为encoding编码,并且,它尽可能的将指定地编码直接写成Unicode文本。 注意,coding:encoding只是告诉Python文件使用了encoding格式的编码,但是编辑器可能会以自己的方式存储.py文件,因此最后文件保存的时候还需要编码中选指定的ecoding 才行。 二、中文字符的存储 >>> str = u"中文" >>> str u'\xd6\xd0\xce\xc4' >>> str = "中文" >>> str '\xd6\xd0\xce\xc4' u"中文"只是声明unicode,实际的编码并没有变。这样子就发生变化了: >>> str = "中文" >>> str '\xd6\xd0\xce\xc4' >>> str = str.decode("gb2312") >>> str u'\u4e2d\u6587' 更进一步: >>> s = '中文' >>> s.decode('gb2312') u'\u4e2d\u6587' >>> len(s) 4 >>> len(s.decode('gb2312')) 2 >>> s = u'中文'

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对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/7a12609841.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.请补充横线处的代码,让Python 帮你随机选一个饮品吧! import ____①____ (1) listC = ['加多宝','雪碧','可乐','勇闯天涯','椰子汁'] print(random. ____②____ (listC)) 参考答案: import random (1) listC = ['加多宝','雪碧','可乐','勇闯天涯','椰子汁'] print(listC)) 2.请补充横线处的代码,listA中存放了已点的餐单,让Python帮你增加一个“红烧肉”,去掉一个“水煮干丝”。 listA = ['水煮干丝','平桥豆腐','白灼虾','香菇青菜','西红柿鸡蛋汤'] listA. ____①____ ("红烧肉") ②____ ("水煮干丝") print(listA) 参考代码: listA = ['水煮干丝','平桥豆腐','白灼虾','香菇青菜','西红柿鸡蛋汤'] ("红烧肉") ("水煮干丝") print(listA) 3.请补充横线处的代码。dictMenu中存放了你的双人下午套餐(包括咖啡2份和点心2份)的价格,让Python帮忙计算并输出消费总额。 dictMenu = {'卡布奇洛':32,'摩卡':30,'抹茶蛋糕':28,'布朗尼':26} ___①____ for i in ____②____: sum += i print(sum) 参考代码: dictMenu = {'卡布奇洛':32,'摩卡':30,'抹茶蛋糕':28,'布朗尼':26} sum = 0 for i in (): sum += i print(sum) 4.获得输入正整数 N,反转输出该正整数,不考虑异常情况。 参考代码: N = input() print(N[::-1]) 5. 给定一个数字123456,请采用宽度为25、右对齐方式打印输出,使用加号“+”填充。 参考代码: print("{:+>25}".format(123456)) 6.给定一个数字.9,请增加千位分隔符号,设置宽度为30、右对齐方式打印输出,使用空格填充。 参考代码:

Python入门教程

Python 入门教程1 ---- Python Syntax 1 Python是一个高效的语言,读和写的操作都是很简单的,就像普通的英语一样 2 Python是一个解释执行的语言,我们不需要去编译,我们只要写出代码即可运行 3 Python是一个面向对象的语言,在Python里面一切皆对象 4 Python是一门很有趣的语言 5 变量:一个变量就是一个单词,只有一个单一的值 练习:设置一个变量my_variable,值设置为10 [cpp] #Write your code below! my_variable = 10 3 第三节 1 Python里面有三种数据类型 interage , floats , booleans 2 Python是一个区分大小写的语言 3 练习 1 把变量my_int 值设置为7 2 把变量my_float值设置为1.23 3 把变量my_bool值设置为true [python] #Set the variables to the values listed in the instructions! my_int = 7 my_float = 1.23 my_bool = True

6 Python的变量可以随时进行覆盖 2 练习:my_int的值从7改为3,并打印出my_int [python] #my_int is set to 7 below. What do you think #will happen if we reset it to 3 and print the result? my_int = 7 #Change the value of my_int to 3 on line 8! my_int = 3 #Here's some code that will print my_int to the console: #The print keyword will be covered in detail soon! print my_int 7 Pyhton的声明和英语很像 8 Python里面声明利用空格在分开 3 练习:查看以下代码的错误 [python] def spam(): eggs = 12 return eggs print spam() 9 Python中的空格是指正确的缩进 2 练习:改正上一节中的错误

(整理)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字符串内置函数

a='helLO' print(a.title()) # 首字母大写a='1 2'

执行结果:1 2 1 2 1 2 00000001 2 1 2 3 4 5 6 7 8 # 3 字符串搜索相关 .find() # 搜索指定字符串,没有返回-1 .index() # 同上,但是找不到会报错 .rfind() # 从右边开始查找 .count() # 统计指定的字符串出现的次数 # 上面所有方法都可以用index代替,不同的是使用index查找不到会抛异常,而find s='hello world' print(s.find('e')) # 搜索指定字符串,没有返回-1 print(s.find('w',1,2)) # 顾头不顾尾,找不到则返回-1不会报错,找到了 则显示索引 print(s.index('w',1,2)) # 同上,但是找不到会报错 print(s.count('o')) # 统计指定的字符串出现的次数 print(s.rfind('l')) # 从右边开始查找 # 4字符串替换 .replace('old','new') # 替换old为new .replace('old','new',次数) # 替换指定次数的old为new s='hello world' print(s.replace('world','python')) print(s.replace('l','p',2)) print(s.replace('l','p',5)) 执行结果: hello python heppo world heppo worpd

# 5字符串去空格及去指定字符 .strip() # 去两边空格 .lstrip() # 去左边空格 .rstrip() # 去右边空格 .split() # 默认按空格分隔 .split('指定字符') # 按指定字符分割字符串为数组 s=' h e-l lo ' print(s) print(s.strip()) print(s.lstrip()) print(s.rstrip()) print(s.split('-')) print(s.split()) # 6字符串判断相关 .startswith('start') # 是否以start开头 .endswith('end') # 是否以end结尾 .isalnum() # 是否全为字母或数字 .isalpha() # 是否全字母 .isdigit() # 是否全数字 .islower() # 是否全小写 .isupper() # 是否全大写 .istitle() # 判断首字母是否为大写 .isspace() # 判断字符是否为空格 # 补充 bin() # 十进制数转八进制 hex() # 十进制数转十六进制 range() # 函数:可以生成一个整数序列 type() # 查看数据类型 len() # 计算字符串长度 format() # 格式化字符串,类似%s,传递值能多不能少

【IT专家】Python-分割字符串,尊重和保留引号[重复]

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Python:分割字符串,尊重和保留引号[重复] Python:分割字符串,尊重和保留引号[重复][英]Python: Split a string, respect and preserve quotes [duplicate]Using python, I want to split the following string: ?使用python,我想拆分如下字符串: a=foo, b=bar, c=“foo, bar”, d=false, e=“false” This should result in the following list: 这应导致下列清单: ?[‘a=foo’, ‘b=bar’, ‘c=“foo, bar”‘, ‘d=false’, ‘e=“false’”‘] When using shlex in posix-mode and splitting with “, “, the argument for cgets treated correctly. However, it removes the quotes. I need them because false is not the same as “false”, for instance. ?当在posix模式下使用shlex并使用“,”拆分时,clex的参数得到了正确的处理。但是,它删除了引号。我需要它们,因为false和false不一样。 My code so far: ?到目前为止我的代码: ?import shlexmystring = ‘a=foo, b=bar, c=“foo, bar”, d=false, e=“false”‘splitter = shlex.shlex(mystring, posix=True)splitter.whitespace += ‘,’splitter.whitespace_split = Trueprint list(splitter) # [‘a=foo’, ‘b=bar’, ‘c=foo, bar’, ‘d=false’, ‘e=false’] 19 s = r’a=foo, b=bar, c=“foo, bar”, d=false, e=“false”, f=“foo\”, bar”‘ re.findall(e (?: | )+ matches a sequence of non-delimiters and quoted strings, which is the desired result. 将模式2和3组合在一起(?: |)+匹配一个非分隔符和引号字符串序列,这是期望的结果。0 ?Regex can solve this easily enough: ?Regex可以很容易地解决这个问题: ?import remystring = ‘a=foo, b=bar, c=“foo, bar”, d=false, e=“false”‘splitString = re.split(‘,?\s(?=\w+=)’,mystring) The regex pattern here looks for a whitespace followed by a word character and then an equals sign which splits your string as you desire and maintains any quotes.

九、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入门基础教程必学的11个知识点

python入门基础教程必学的11个知识点 Python被誉为全世界高效的编程语言,同时也被称作是“胶水语言”,那它为何能如此受欢迎,下面我们就来说说Python入门学习的必备11个知识点,也就是它为何能够如此受欢迎的原因。 1、Python适用于哪些应用场景? 这个没有固定答案,很多人都说Python不适合开发GUI的程序,但Python 自己的IDE——IDEL和第三方的IDE——Eric就是Python写的。 目前看到的更多的人是拿来写Web,使用如Django、web.py框架,没记错Flask也是。 也有一个情况用的比较多,用Python当胶水,与各种语言结合,共同完成某软件功能,注意观察也许你会发现在安装一些软件的时候会有Python的身影。 我个人还拿Python模拟过端口转发和DNS服务等,所以真的是要看真么用,而不是能怎么用。

另外大数据分析Python也是比较适合的,从载入到分析,再到保存结果等,Python有一整套的模块应对。 2、Python能够胜任大数据吗? Python很适合做大数据相关的分析,内置的C编译的模块能应对常见的操作,个别极端的算法建议用C重写相关模块。 Python本身的特点更多的是高效率的开发和简单的维护,速度交给C去吧,更多的问题其实出自写代码的人没有更好的使用,而不是效率不够高。比如排序,本来Python有非常高效的内置C编译的模块,却非要自己写算法,这样的结果不慢都是奇怪的。 另外还要看需求是CPU密集型,还是IO密集型,如果是CPU密集型建议这部分操作由C实现,IO密集型的效率不会因为Python而有多少改变。 C的效率是高,但框架搭起来也费劲,所以还是结合着来吧,也因此,Python 被称为胶水语言。 3、Python是否可以完全代替Shell? 完全可以,Shell的功能Python均可实现,而且代码量更少、结构更优、可阅读性更好,而Python可实现的功能Shell却不一定能,如运维中会用到的用于网络通信的Socket模块、用于WEB的Django框架、用于性能采集的psutil 模块等,而且Shell对操作系统的命令依赖性较强,Python可在更大程度上规避。 在一个Shell的IDE是个很大的问题,虽然Python的原生IDE不怎么样,但第三方的IDE还是功能十分强大的,虽然不能和微软的Virtual Studio相媲美,但也是能完全满足Python的开发需求的。

Python 的内置字符串方法

字符串处理是非常常用的技能,但Python 内置字符串方法太多,常常遗忘,为了便于快速参考,特地依据Python 3.5.1 给每个内置方法写了示例并进行了归类,便于大家索引。 PS: 可以点击概览内的绿色标题进入相应分类或者通过右侧边栏文章目录快速索引相应方法。 概览 字符串大小写转换 ?str.capitalize() ?str.lower() ?str.casefold() ?str.swapcase() ?str.title() ?str.upper() 字符串格式输出 ?str.center(width[, fillchar]) ?str.ljust(width[, fillchar]); str.rjust(width[, fillchar]) ?str.zfill(width) ?str.expandtabs(tabsize=8)

?str.format(^args, ^^kwargs) ?str.format_map(mapping) 字符串搜索定位与替换 ?str.count(sub[, start[, end]]) ?str.find(sub[, start[, end]]); str.rfind(sub[, start[, end]]) ?str.index(sub[, start[, end]]); str.rindex(sub[, start[, end]]) ?str.replace(old, new[, count]) ?str.lstrip([chars]); str.rstrip([chars]); str.strip([chars]) ?static str.maketrans(x[, y[, z]]); str.translate(table) 字符串的联合与分割 ?str.join(iterable) ?str.partition(sep); str.rpartition(sep) ?str.split(sep=None, maxsplit=-1); str.rsplit(sep=None, maxsplit=-1) ?str.splitlines([keepends]) 字符串条件判断 ?str.endswith(suffix[, start[, end]]); str.startswith(prefix[, start[, end]]) ?str.isalnum() ?str.isalpha() ?str.isdecimal(); str.isdigit(); str.isnumeric() ?str.isidentifier()

-Python基础教程(自学记录)

第一章快速改造:基础知识 1.2交互式解释器 在IDLE编辑器,在提示符后输入help然后按回车;也可以按下F1获得有关IDLE的帮助信息 1.4数字和表达式 1/2返回0,整除除法;1.0/2返回0.5,用一个或者多个包含小数点的数字参与计算。另外改变除法的执行方式:from_future_import division //可以实现整除,1.0//2.0返回0.0 %取余数;**幂运算; >>> 1/2

>>> 1.0/2 0.5 >>> 1.0//2.0 0.0 >>> 10%3 1 >>> 9**(1/2) 1 >>> 9**(1.0/2) 3.0 >>> 2.75%0.5 0.25 >>> -9%4 3 >>> -3%2 1 >>> -3/2 -2 1.4.1长整数 普通整数不能大于2147483647也不能小于-2147483648,若更大的数,可以使用长整数。长整数结尾有个L,理论上小写也可以,不过为了便于识别,尽可能用大写。

1.4.2十六进制和八进制 0XAF返回175 ,十六进制; 010返回8,八进制 >>> 0xAF 175 >>> 010 8 1.5变量 包含字母、数字和下划线。首字母不能是数字开头。 1.8函数 Pow计算乘方:pow(2,3),2**3均返回8;pow等标准函数称为内建函数。 Abs(-10)求绝对值,返回10;round(1.0/2.0)返回1.0,把浮点数四舍五入为最接近的整数值。 >>> pow(2,3) 8 >>> 2**3 8 >>> abs(-10) 10 >>> round(1.0/2.0) 1.0

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字符串常用函数

字符串常用函数 replace(string,old,new[,maxsplit]) 字符串的替换函数,把字符串中的old替换成new。默认是把string中所有的old值替换成new 值,如果给出maxsplit值,还可控制替换的个数,如果maxsplit为1,则只替换第一个old 值。 >>>a="11223344" >>>print string.replace(a,"1","one") oneone2223344 >>>print string.replace(a,"1","one",1) one12223344 capitalize(string) 该函数可把字符串的首个字符替换成大字。 >>> import string >>> print string.capitalize("python") Python split(string,sep=None,maxsplit=-1) 从string字符串中返回一个列表,以sep的值为分界符。 >>> import string >>> ip="192.168.3.3" >>> ip_list=string.split(ip,'.') >>> print ip_list ['192', '168', '3', '3'] all( iterable) 如果迭代的所有元素都是真就返回真。 >>> l = [0,1,2,3] >>> all(l) Flase >>> l = [1,2,3] >>> all(l) True any( iterable) 如果迭代中有一个元素为真就返回真。 >>> l = [0,1,2,3] >>> all(l) True >>> l = [1,2,3] >>> all(l) True basestring() 这个抽象类型是str和unicode的父类。它不能被调用或初始化,但是它可以使用来测试一

千锋教育Python入门教程

千锋教育Python入门教程 有人说,看着Python简单易学,想尝试自学,打算找些入门教程自学Python,不知道哪的视频好。现在,你可来对地方了,接下来附上千锋教育Python入门教程的链接。 千锋Python基础教程:https://www.360docs.net/doc/7a12609841.html,/s/1qYTZiNE Python课程教学高手晋级视频总目录: https://www.360docs.net/doc/7a12609841.html,/s/1hrXwY8k Python课程windows知识点:https://www.360docs.net/doc/7a12609841.html,/s/1kVcaH3x Python课程linux知识点:https://www.360docs.net/doc/7a12609841.html,/s/1i4VZh5b Python课程web知识点:https://www.360docs.net/doc/7a12609841.html,/s/1jIMdU2i Python课程机器学习:https://www.360docs.net/doc/7a12609841.html,/s/1o8qNB8Q Python 看完视频,建议你了解一下Python可以做什么: 1.网站后端程序员:使用它单间网站,后台服务比较容易维护。如:Gmail 、Youtube、知乎、豆瓣;

2.自动化运维:自动化处理大量的运维任务; 3.数据分析师:快速开发快速验证,分析数据得到结果; 4.游戏开发者:一般是作为游戏脚本内嵌在游戏中; 5.自动化测试:编写为简单的实现脚本运用在Selenium/lr,可实现自动化; 6.网站开发:借助django,flask框架自己搭建网站; 7.爬虫获取或处理大量信息:批量下载美剧、运行投资策略、爬合适房源、系统管理员的脚本任务等。 千锋教育Python培训课程共23周10大阶段力造Python全栈工程师,直击月薪15000!内容包括3.Python语言基础2.7.3、Python 3.x 进阶与python第三方库、PyQt开发、Linux指令、Linux Shell、Linux python运维自动化、KaliLinux 安全课程、Linux 网站后台-python开发、Python 数据库MySQL Oracle开发、HTML5基础CSS基础。 当然,没说完,还有Java-Script JQuery基础、Python项目爬虫,服务集群,网站后台,微信公众号开发、Python机器学习与数据挖掘,数据分析

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

相关文档
最新文档