易截截图软件、单文件、免安装、纯绿色、仅160KB

python操作excel性能问题求助

http://bbs.chinaunix.net/thread-1586782-1-1.html
我刚刚用python写了一段操作excel的脚本,目的是把一个excel文件按照某一列中的字段拆分成多个文件,例如按照城市或者省份等,但是发现处理一个1700行的文件拆分成40多个文件时要运行30分钟左右,性能太慢,请高手帮忙看看怎么才能优化性能,谢谢。
新手写的脚本,请不要见笑,如下:
'''
Created on 2009-9-25
@author: vidon
'''
#_*_ coding:UTF-8 _*_
import os, sys, time
import win32com.client
xls=win32com.client.Dispatch("Excel.Application")
xls.Visible=False
source_path = input('请输入要操作的文件名路径与名称(例如:D:\ABC\BOOK.XLS):').replace('\r','')
target_path = input('请输入存放数据处理结果的目录(例如:D:\BACK\):').replace('\r','')
x=int(input("请输入表头的行数:").replace('\r',''))
y=int(input("请输入作为拆分数据的依据所在列的号码:").replace('\r',''))
if not os.path.exists(target_path):
    os.mkdir(target_path)
    print("已经创建指定的目录,准备创建文件,请稍等······")
else:
    print("准备创建文件,请稍等······")
   
#读取原始文件
book=xls.Workbooks.Open(source_path)
sheet=book.ActiveSheet
length = sheet.UsedRange.Rows.Count
y_length = sheet.UsedRange.Columns.Count
keyArray = []
for i in range((x+1),length):
    keyArray.append(sheet.Cells(i,y).Value)
  
#根据指定的列中的字段创建新文件
ll = len(keyArray)
for j in range(1,ll):
   
    filename = target_path + str(keyArray[j]) + ".xls"
    if os.path.exists (filename):
        continue
    else :
        sheet.Range(sheet.Cells(1,1),sheet.Cells(x,y_length)).select
        sheet.Range(sheet.Cells(1,1),sheet.Cells(x,y_length)).copy
        newbook = xls.Workbooks.Add()
&nb


相关文档:

python的一些操作

# coding=gb2312
# 用中文注释前务必加上第一行
# 求模运算符,和C语言一样
print 10%9
# 整数相除仍然是整数
print 5/2
# 2后加上.就变成浮点数了
print 5/2.
# **表示求幂运算
print 7**4
# 函数用时要加上module.function
import math
print math.floor(19.8)
# 函数名也可以成为变量
func = math.floor
......

Python学习笔记 高级主题

1.列表的递归---用于输出列表字符串中的每个元素 >>> def printList(L):
    #如果为空,则什么都不做
    if not L:
        return
    #如果是链表,则对第一个元素调用printList函数
 & ......

才发现 Python 被和谐了

昨天在研究了几天PHP-GTK后,决定转向Python,因为Python具有多线程这个特点,在与系统交互方面也比较有优势,虽然我很喜欢PHP,PHP在网页方面也非常强大,但毕竟我不是搞网站开发的。
想下个Python吧,发现它居然被和谐了,太诡异了
唉,和谐有理,屏蔽无罪! ......

Python学习笔记 模块;文件与文本处理

1.Python中时间函数有几种不同的表示方法。一种是基于数字的表示方法,另外一种是用一系列值来表示,第三种是用ASCII码字符串的可读形式来表示的元组。 time()函数返回的是从某一时间点算起的秒数,该数值是一个浮点数。根据操作系统的不同,这个时间点也不同。通过求localtime(0)的值可以找到系统的该时间点。 localtime ......

python之娱乐类:魔法传值

还记得是一个月的事情,神奇般的在youtube上搜索python,有个老外的教程里面有这么个内容:
#=============================
## python 魔法传值
#============================= 
#-*-coding:utf-8-*-
class sono:
    def Dict(self,**args):
        ret ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号