最近由于经常要用到Excel,需要根据Excel表格中的内容对一些apk进行处理,手动处理很麻烦,于是决定写脚本来处理。首先贴出网上找来的读写Excel的脚本。
1读取Excel(需要安装xlrd):
123456789101112131415161718192021222324#-- coding: utf8 --import xlrd fname = "reflectxls"bk = xlrdopen_workbook(fname)shxrange = range(bknsheets)try: sh = bksheet_by_name("Sheet1")except: print "no sheet in %s named Sheet1" % fname#获取行数nrows = shnrows#获取列数ncols = shncolsprint "nrows %d, ncols %d" % (nrows,ncols)#获取第一行第一列数据cell_value = shcell_value(1,1)#print cell_value row_list = []#获取各行数据for i in range(1,nrows): row_data = shrow_values(i) row_listappend(row_data)2写入Excel(需安装pyExcelerator)
12345678from pyExcelerator import w = Workbook() #创建一个工作簿ws = wadd_sheet('Hey, Hades') #创建一个工作表wswrite(0,0,'bit') #在1行1列写入bitwswrite(0,1,'huang') #在1行2列写入huangwswrite(1,0,'xuan') #在2行1列写入xuanwsave('minixls') #保存3再举个自己写的读写Excel的例子
读取reflectxls中的某些信息进行处理后写入minixls文件中。
1234567891011121314151617181920212223242526272829303132333435363738394041424344#-- coding: utf8 --import xlrdfrom pyExcelerator import w = Workbook()ws = wadd_sheet('Sheet1') fname = "reflectxls"bk = xlrdopen_workbook(fname)shxrange = range(bknsheets)try: sh = bksheet_by_name("Sheet1")except: print "no sheet in %s named Sheet1" % fname nrows = shnrowsncols = shncolsprint "nrows %d, ncols %d" % (nrows,ncols) cell_value = shcell_value(1,1)#print cell_value row_list = []mydata = []for i in range(1,nrows): row_data = shrow_values(i) pkgdatas = row_data[3]split(',') #pkgdatassplit(',') #获取每个包的前两个字段 for pkgdata in pkgdatas: pkgdata = ''join((pkgdatasplit(''))[:2]) mydataappend(pkgdata) #将列表排序 mydata = list(set(mydata)) print mydata #将列表转化为字符串 mydata = ','join(mydata) #写入数据到每行的第一列 wswrite(i,0,mydata) mydata = [] row_listappend(row_data[3])#print row_list wsave('minixls')4现在我需要根据Excel文件中满足特定要求的apk的md5值来从服务器获取相应的apk样本,就需要这样做:
123456789101112131415161718192021222324252627282930313233#--coding:utf8--import xlrdimport osimport shutil fname = "/excelnamexls"bk = xlrdopen_workbook(fname)shxrange = range(bknsheets)try: #打开Sheet1工作表 sh = bksheet_by_name("Sheet1")except: print "no sheet in %s named Sheet1" % fname#获取行数nrows = shnrows#获取列数ncols = shncols#print "nrows %d, ncols %d" % (nrows,ncols)#获取第一行第一列数据cell_value = shcell_value(1,1)#print cell_value row_list = []#range(起始行,结束行)for i in range(1,nrows): row_data = shrow_values(i) if row_data[6] == "HXB": filename = row_data[3]+"apk" #print "%s %s %s" %(i,row_data[3],filename) filepath = r"/1/"+filename print "%s %s %s" %(i,row_data[3],filepath) if ospathexists(filepath): shutilcopy(filepath, r"/myapk/")补充一个使用xlwt3进行Excel文件的写 *** 作。
1234567891011121314151617181920212223242526import xlwt3 if __name__ == '__main__': datas = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h']]#二维数组 file_path = 'D:\\testxlsx' wb = xlwt3Workbook() sheet = wbadd_sheet('test')#sheet的名称为test #单元格的格式 style = 'pattern: pattern solid, fore_colour yellow; '#背景颜色为** style += 'font: bold on; '#粗体字 style += 'align: horz centre, vert center; '#居中 header_style = xlwt3easyxf(style) row_count = len(datas) col_count = len(datas[0]) for row in range(0, row_count): col_count = len(datas[row]) for col in range(0, col_count): if row == 0:#设置表头单元格的格式 sheetwrite(row, col, datas[row][col], header_style) else: sheetwrite(row, col, datas[row][col]) wbsave(file_path)输出的文件内容如下图:
注:以上代码在Python 3x版本测试通过。
好了,python *** 作Excel就这么!些了,简单吧
#!/usr/bin/env python
file_name = '/log' # 指定文件
stat = {'+':0, '-':0}
f = open(file_name)
for line in f:
if line[0] in ['+', '-']:
stat[line[0]] += 1
print(linerstrip())
print("\ntotal:")
print("+:\t" + str(stat['+']))
print("-:\t" + str(stat['-']))
经测试,代码并无问题。
wbget_sheet_by_name('Sheet1')返回的是工作表中最大的行号(所有列中有数据区的最大行号者)
你的代码并没有超过这个最大行号(也就是修改的内容在最大行号内),所以表现不出来。
即你并没有改变工作表的最大行号(没有增加行)
一、读excel表
读excel要用到xlrd模块,官网安装(>
1读取Excel(需要安装xlrd):
#-- coding: utf8 --
import xlrd
fname = "reflectxls"
bk = xlrdopen_workbook(fname)
shxrange = range(bknsheets)
try:
sh = bksheet_by_name("Sheet1")
except:
print "no sheet in %s named Sheet1" % fname
#获取行数
nrows = shnrows
#获取列数
ncols = shncols
print "nrows %d, ncols %d" % (nrows,ncols)
#获取第一行第一列数据
cell_value = shcell_value(1,1)
#print cell_value
row_list = []
#获取各行数据
for i in range(1,nrows):
row_data = shrow_values(i)
row_listappend(row_data)
2写入Excel(需安装pyExcelerator)
from pyExcelerator import
w = Workbook() #创建一个工作簿
ws = wadd_sheet('Hey, Hades') #创建一个工作表
wswrite(0,0,'bit') #在1行1列写入bit
wswrite(0,1,'huang') #在1行2列写入huang
wswrite(1,0,'xuan') #在2行1列写入xuan
wsave('minixls') #保存
>>> data = xlrdopen_workbook('TESTxls')
>>> table = datasheets()[0]
>>> nrows = tablenrows #行数
_cellValues=[]
for i in range(nrows):
_cellValuesappend(tablecell(i,0)value)
有两种情况,
1,文件比较大时,一行一行循环直到最后一行,读取最后一行;
targetLine = "";lineNo = 0;
while 1:
mLine = filereadline();
if not mLine:
break;
lineNo += 1;
if (linecount == lineNO):
targetLine = mLine;
2, 文件比较小,直接读取全文,取最后一行数据。
targetLine = "";mLines = fileread();
targetLine = mLines[-1];filelineno( )
Return the line number in the current file Before the first line has been read, returns 0 After the last line of the last file has been read, returns the line number of that line within the file
以上就是关于python怎么读取excel的数据全部的内容,包括:python怎么读取excel的数据、求python文本分析脚本,读取、显示、计数匹配条件行数。、为什么python用openpyxl模块 *** 作Excel,修改数据前后获取的行数是一样的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)