Python学习记录(二)

日常中,Excel是比较常用的,用python处理大量Excel文件是一个比较合适方式。

各种代码之间,有许多相同之处,码代码的逻辑是相同的。在最近的操作中,感觉就像做一道数学题,一步一步的解答。

input_file=sys.argv[1]
output_file = sys.argv[2] #这两段是用来在Windows的命令行调动python程序
#eg:python abc.py xxx.xlsx mm.xls,其中abc.py是保存的代码文件
#xxx.xlsx是input_file(也可以用文件夹路径,表示输入文件是多个文件)
#mm.xls是输出文件,.xls是Excel通用格式(03,07,10,13版)
output_workbook=Workbook()#利用xlwt Workbook实例化对象,使我们可以向输出文件写入内容
output_worksheet=output_workbook.add_sheet('Jan-2013')# add_sheet,增加工作表
pattern = re.compile(r'(?P<my_pattern>^J.*)')  #re.compile  创建正则公式,r''表示原始字符串,
          #my_pattern 可以作为^J的索引,^J表示以J开头的字符串,.*表示J后面可以是认出除换行符的字符
with open_workbook(input_file) as workbook: #workbook=open_workbook(input_file)
                                               

利用re正则函数索引

if pattern.search(worksheet.cell_value(row_index,column_index))   利用re模块的search函数搜索固定的列,可以利用row_index或者column_index为固定值索引特定的行或者列。

在Excel中,cell_type==3,表示该cell的type为日期

  date_cell = xldate_as_tuple(cell_value,workbook.datemode)     #from xlrd import xldate_as_tuple,xldate_as_tuple可以将excel中日期转化成元组,datemode是将日期基于19000101开始计算

  date_cell = date(*date_cell[0:3]).strftime('%m%d%Y')   #利用元组索引引用date_cell的[0:3],年月日,然后传递给date函数,利用strftime将date 对象转化为%m%d%Y

 

for list_index,ouput_list in  enumerate(data):  #data为最后结果的列表

        for element_index,element in enumerate(ouput_list)   #enumerate是一个可以遍历对象的函数,将遍历的数据组合成一个索引序列,同时给出下标,例如第一个for对data列表进行迭代,ouput_list里面也是一个列表,然后第二个for对ouput_list列表再次迭代

                output_worksheet.write(list_index,element_index,element) #将2次迭代的索引写入sheet中,第一个是行值,第二个是列值,第三个是cell_value

如果不对最后结果的列表进行enumerate函数遍历,会导致空行,enumerate将原数据去除空值。

转载于:https://my.oschina.net/u/3670998/blog/1574230

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值